6

Ubuntu 9.10 Linux Boxで再起動した後にMercurial(hg)を起動しようとすると、次のメッセージが表示されます。

      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)

不思議なことに、django-admin、bzrなどの他のPythonプログラムはモジュールを見つけられませんが、驚くべきことに、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']

誰かがこの問題を解決する方法を知っていますか?

これは特にプログラミングの問題ではないことは知っていますが、プログラミングができませんので、ご理解のほどよろしくお願いいたします。

前もって感謝します。

4

5 に答える 5

8

これを試して:

update-python-modules -p

(それをsudoする必要があるかもしれません...)出典: http: //hg.opensource.lshift.net/mercurial-server/rev/32dba1a70a54

于 2011-10-13T23:17:35.100 に答える
5

私がこれについてグーグルで検索したすべてのサイトは、あなた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あなたのマシンはどこにありますか?私のウィンドウズボックスでは、それはここにあります:

>>> 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

から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

于 2009-12-04T15:54:07.610 に答える
1

Mercurialはライブラリのインストールパス(dist-packagesまたはsite-packages)の1つにありますか?あなたはfindそれを探すためにツールを使うことができますか?

小さなライブラリをインストールして、このマシンのPythonからそれらにアクセスできましたか?

于 2009-12-04T14:35:48.847 に答える
1

皆様のご尽力に感謝いたします。

hughdbrownのおかげで問題を解決しました。hughdbrown、$ PYTHONPATHの実行を定義するときに、タイプミスを犯したことに気づきました。パス/usr/ lib / pymodules / python2.6を追加する代わりに、/ usr / lib / pymodules /と記述したので、pythonはライブラリをインポートできませんでした...しかし、修正して、MercurialとCo.は再び働きます。

唯一の奇妙なことは、なぜそれが変わったのかということです...まあ、私はこれから何をすべきかを知っているでしょう。

于 2009-12-04T17:47:30.810 に答える
0

影響を受けたPythonプログラムを適切に再インストールしてみてください。

sudo aptitude reinstall mercurial
于 2009-12-04T14:44:25.277 に答える