我怎样才能纠正损坏$ PYTHONPATH?
-
13-09-2019 - |
题
当试图在我的Ubuntu 9.10 Linux机器重新启动后,推出水银(汞),我得到了以下信息:
abort: couldn't find mercurial libraries in [/usr/bin /usr/local/lib/python2.6/dist-packages/vipy-0.4-py2.6.egg /usr/local/lib/python2.6/dist-packages/nose-0.11.1-py2.6.egg /usr/local/lib/python2.6/dist-packages/rope-0.9.2-py2.6.egg /usr/local/lib/python2.6/dist-packages/Sphinx-0.6.3-py2.6.egg /usr/local/lib/python2.6/dist-packages/django_html-0.0.1-py2.6.egg /usr/local/lib/python2.6/dist-packages/html5lib-0.11.1-py2.6.egg /home/kenny /home/kenny/Projects/soclone-read-only /home/kenny/python/Django /home/kenny/python/pysmell /home/kenny/python/Django/ropemode /home/kenny/python/Django/rope /home/kenny/python/lib /usr/lib/python2.6 /usr/lib/python2.6/plat-linux2 /usr/lib/python2.6/lib-tk /usr/lib/python2.6/lib-old /usr/lib/python2.6/lib-dynload /usr/local/lib/python2.6/dist-packages]
(check your install and PYTHONPATH)
令人不解其他Python程序没有找到他们的模块,包括Django的管理员,BZR,但令人惊讶的Python解释本身正在启动。
在这里,你可以找到我当前的sys.path:
['', '/usr/local/lib/python2.6/dist-packages/vipy-0.4-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/nose-0.11.1-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/rope-0.9.2-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/Sphinx-0.6.3-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/django_html-0.0.1-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/html5lib-0.11.1-py2.6.egg', '/home/kenny', '/home/kenny/Projects/soclone-read-only', '/home/kenny/python/Django', '/home/kenny/python/pysmell', '/home/kenny/python/Django/ropemode', '/home/kenny/python/Django/rope', '/home/kenny/python/lib', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/local/lib/python2.6/dist-packages']
有谁知道如何解决这个问题呢?
我知道这是在特定的无需编程的问题,但它不允许我的程序,所以我请你理解!
预先感谢。
解决方案
尝试这种情况:
更新蟒模块-p
(可能需要sudo的是...) 资源: http://hg.opensource.lshift.net/mercurial-server/rev/32dba1a70a54
其他提示
所有我GOOGLE了这个网站说你PYTHONPATH
is设置错误。你是在水银击中代码看起来是这样的:
try:
from mercurial import demandimport; demandimport.enable()
except ImportError:
import sys
sys.stderr.write("abort: couldn't find mercurial libraries in [%s]\n" %
' '.join(sys.path))
sys.stderr.write("(check your install and PYTHONPATH)\n")
sys.exit(-1)
那么,是demandimport
你的机器上?在我的Windows中,它是在这里:
>>> from mercurial import demandimport
>>> demandimport.__file__
'C:\\Python26\\lib\\site-packages\\mercurial-1.4.1-py2.6-win32.egg\\mercurial\\demandimport.pyc'
这工作,因为我有我的PYTHONPATH善变的:
>>> import sys
>>> for s in sys.path:
... print s
...
# Other crud deleted...
C:\Python26\lib\site-packages\mercurial-1.4.1-py2.6-win32.egg
C:\Windows\system32\python26.zip
C:\Python26\DLLs
C:\Python26\lib
C:\Python26\lib\plat-win
C:\Python26\lib\lib-tk
C:\Python26
C:\Python26\lib\site-packages
您PYTHONPATH
只字不提善变的。在猜测,我会添加到您的PYTHONPATH:
/usr/local/lib/python2.6/site-packages
和我将重新安装从make
水银。该建议行之有效这里。
编辑:而在我的Ubuntu 9.10中,我得到了这些结果:
>>> import mercurial
>>> mercurial.__file__
'/usr/lib/pymodules/python2.6/mercurial/__init__.pyc'
>>> import sys
>>> for s in sys.path:
... print s
...
/usr/local/lib/python2.6/dist-packages/pip-0.6.1-py2.6.egg
/usr/local/lib/python2.6/dist-packages/virtualenv-1.4.3-py2.6.egg
/usr/lib/python2.6
/usr/lib/python2.6/plat-linux2
/usr/lib/python2.6/lib-tk
/usr/lib/python2.6/lib-old
/usr/lib/python2.6/lib-dynload
/usr/lib/python2.6/dist-packages
/usr/lib/python2.6/dist-packages/PIL
/usr/lib/python2.6/dist-packages/gst-0.10
/usr/lib/pymodules/python2.6
/usr/lib/python2.6/dist-packages/gtk-2.0
/usr/lib/pymodules/python2.6/gtk-2.0
/usr/local/lib/python2.6/dist-packages
/usr/local/lib/python2.6/dist-packages/PIL
这让我想到的问题是,这是对你的思念。/usr/lib/pymodules/python2.6
时善变位于库安装路径(dist-packages
或site-packages
)中的一个?您可以使用find
工具寻找它?
你有运气安装小型图书馆,在Python访问他们这台机器上?
感谢您的努力,所有的人。
我已经解决了由于问题的 hughdbrown 。 hughdbrown,你让我意识到我做定义PYTHONPATH $当COMMITED一个错字;而不是添加的路径/ usr / lib中/ pymodules / python2.6的后,我写了/ usr / lib目录/ pymodules /所以Python不能导入库......不过,我纠正它,我“M高兴地看到水银和Co.重新工作。
唯一奇怪的是,为什么它改变了......好吧,我会从现在开始就做什么了解。
您可以尝试重新安装受影响的Python程序与资质:
sudo aptitude reinstall mercurial