Вопрос

При попытке запустить 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top