Как я могу исправить поврежденный $PYTHONPATH?
-
13-09-2019 - |
Вопрос
При попытке запустить Mercurial(hg) после перезагрузки в моем Ubuntu 9.10 Linux Box я получил следующее сообщение:
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-admin, 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']
Кто-нибудь знает, как решить эту проблему?
Я знаю, что это не конкретный вопрос программирования, но он не позволяет мне программировать, поэтому прошу вашего понимания!
Заранее спасибо.
Решение
Попробуй это:
обновление-python-модулей -p
(Может потребоваться Sudo, что ...) Источник:http://hg.opensource.lshift.net/mercurial-server/rev/32dba1a70a54
Другие советы
На всех сайтах, которые я искал в Google, говорится, что ваш PYTHONPATH
установлено неправильно.Код, который вы нажимаете в mercurial, выглядит следующим образом:
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 есть mercurial:
>>> 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
и я бы переустановил Mercurial из 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
.
Находится ли mercurial в одном из путей установки библиотеки (dist-packages
или site-packages
)?Вы можете использовать find
инструмент для его поиска?
Удалось ли вам установить небольшие библиотеки и получить к ним доступ из Python на этом компьютере?
Спасибо всем вам за усилия.
Я решил проблему благодаря Хьюдбраун.Хьюдбраун, вы заставили меня понять, что я допустил опечатку при определении выполнения $PYTHONPATH;вместо добавления пути /usr/lib/pymodules/питон2.6, я написал /usr/lib/pymodules/, чтобы Python не мог импортировать библиотеки...Однако я это исправил и рад видеть Mercurial and Co.опять работа.
Единственное, что странно, ПОЧЕМУ это изменилось...Что ж, теперь я буду знать, что делать.
Вы можете попробовать переустановить затронутые программы Python с помощью aptitude:
sudo aptitude reinstall mercurial