Domanda

Quando si tenta di lanciare Mercurial (Hg) dopo un riavvio nel mio Ubuntu 9.10 Linux Box ho ricevuto seguente messaggio:

      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)

Misteriosamente altri programmi Python non trovano i loro moduli, tra cui django-admin, bzr, ma sorprendentemente l'interprete Python si sta lanciando.

Qui potete trovare la mia sys.path corrente:

  ['', '/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']

Qualcuno sa come risolvere questo problema?

So che questa non è una questione di programmazione in specifico, ma mi impedisca al programma, quindi mi chiedo la vostra comprensione!

Grazie in anticipo.

È stato utile?

Soluzione

Prova questo:

update-python-moduli -p

(potrebbe aver bisogno di sudo che ...) Fonte: http://hg.opensource.lshift.net/mercurial-server/rev/32dba1a70a54

Altri suggerimenti

Tutti i siti Googled per questo dire che i tuoi PYTHONPATHis impostati male. Il codice che si sta colpendo in mercuriale sembra essere questo:

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)

Allora, dove è demandimport sulla vostra macchina? Sulla mia casella di Windows, è qui:

>>> from mercurial import demandimport
>>> demandimport.__file__
'C:\\Python26\\lib\\site-packages\\mercurial-1.4.1-py2.6-win32.egg\\mercurial\\demandimport.pyc'

E questo funziona perché ho mercuriale nel mio 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

Il tuo PYTHONPATH non fa menzione di mercuriale. A occhio e croce, vorrei aggiungere questo alla tua PYTHONPATH:

/usr/local/lib/python2.6/site-packages

e vorrei reinstallare mercuriale da make. Quel consiglio ha funzionato bene qui .

Edit: E sulla mia Ubuntu 9.10 scatola, ho ottenuto questi risultati:

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

E questo mi fa pensare il problema è che questa non è presente per voi:. /usr/lib/pymodules/python2.6

Mercurial è situato in uno dei percorsi di installazione biblioteca (dist-packages o site-packages)? È possibile utilizzare lo strumento find a cercarlo?

Hai avuto fortuna l'installazione di piccole biblioteche e accedervi da Python su questa macchina?

Grazie per lo sforzo di tutti voi.

Ho risolto il problema grazie alla hughdbrown . hughdbrown, mi hai fatto capire che ho commesso un errore di battitura quando si definisce facendo $ PYTHONPATH; invece di aggiungere il percorso / usr / lib / pymodules / python2.6 , ho scritto / usr / lib / pymodules / python così non poteva importare le librerie ... Comunque, ho corretto e ho 'm contento di vedere Mercurial e Co. lavorare di nuovo.

L'unica cosa strana è, perché ha cambiato ... Beh, sarò sapendo da ora su cosa fare.

Si potrebbe provare a reinstallare i programmi Python colpite con attitudine:

sudo aptitude reinstall mercurial
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top