سؤال

عند محاولة تشغيل Mercurial (HG) بعد إعادة التشغيل في صندوق 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-Admin، BZR، ولكن من المستغرب أن يطلق مترجم فثرون نفسه.

هنا يمكنك أن تجد بلدي 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-modules -p

(قد تحتاج إلى سودو ذلك ...) المصدر:http://hg.opensource.lshift.net/mercurial-server/rev/32dba1a70a54.

نصائح أخرى

جميع المواقع التي قمت بها في هذا القول 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'

وهذا يعمل لأنني قد mercurial في بلدي 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 لا يذكر mercurial. في تخمين، أود أن أضيف هذا إلى 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 على هذا الجهاز؟

شكرا لجهودكم جميعا.

لقد حلت المشكلة بفضل Hughdbrown.. وبعد Hughdbrown، لقد جعلتني أدرك أنني ارتكبت خطأ مطبعي عند تحديد القيام ب $ PythonPath؛ بدلا من إضافة المسار / USR / LIB / Pymodules /Python2.6., ، كتبت / USR / LIB / Pymodules / لذلك لم أستطع Python استيراد المكتبات ... ومع ذلك، قمت بتصحيحها وأنا سعيد لرؤية العمل الزئبق وشركاه مرة أخرى.

الشيء الوحيد الغريب هو، لماذا تغير ... حسنا، سأعرف من الآن على ما يجب القيام به.

يمكنك محاولة إعادة تثبيت برامج بيثون المتأثرة مع الاستعداد:

sudo aptitude reinstall mercurial
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top