2012-01-09 16 views
14

da linea di comando non riesco a importare AppEngine, questo potrebbe essere qualcosa con il mio percorso di pitone:non può importare i moduli che sono lì

$ python 
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53) 
[GCC 4.5.2] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from google.appengine.ext import db 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "google/appengine/ext/db/__init__.py", line 98, in <module> 
    from google.appengine.api import datastore 
    File "google/appengine/api/datastore.py", line 62, in <module> 
    from google.appengine.datastore import datastore_query 
    File "google/appengine/datastore/datastore_query.py", line 64, in <module> 
    from google.appengine.datastore import datastore_index 
    File "google/appengine/datastore/datastore_index.py", line 60, in <module> 
    from google.appengine.api import validation 
    File "google/appengine/api/validation.py", line 51, in <module> 
    import yaml 
ImportError: No module named yaml 
>>> 

Non voglio installazioni duplicati, voglio puntare il Interprete Python dove si trova il modulo mancante. Come faccio a fare in modo che l'interprete trovi i moduli del motore dell'app dal prompt dei comandi? Nell'applicazione queste importazioni stanno funzionando.

risposta

14

apposizione:

/usr/local/google_appengine/:/usr/local/google_appengine/lib/:/usr/local/google_appengine/lib/yaml/ 

al vostro PYTHONPATH variabile di ambiente dovrebbe fare il trucco (la posizione può variare SDK).

+0

A volte l'ordine si aggiunge al tuo PYTHONPATH può fare la differenza, come alcune librerie possono entrare in conflitto in ordine errato. Controlla anche che i tuoi moduli siano installati per la stessa versione di Python. Potresti averli installati per Python 2.6 e annotarli in Python 2.7. –

+4

Ho dovuto cambiare yaml a yaml-3.10 come risposta di @ Clyde menzionata – dghubble

8

Per appengine 1.9.6 google ha creato una nuova directory "yaml-3.10" che contiene il modulo yaml. Ho aggiunto "[appengine install directory] /google_appengine/lib/yaml-3.10" a PYTHONPATH nel mio file .bashrc e ho risolto questo problema. A proposito: io uso Ubuntu 14.04 LTS.

6

yaml non è installato nella configurazione corrente. il pacchetto yaml è incluso con google_appengine nella cartella lib. lo script setup.py nella cartella aggiungerà il pacchetto yaml al pitone corrente

cd google_appengine/lib/yaml 
sudo python setup.py install 
+0

Questa risposta potrebbe essere migliorata con alcune spiegazioni sul perché il richiedente sta avendo il problema e su come l'esecuzione di questi comandi risolverà il loro problema. – ArtOfWarfare

+0

è meglio? – semisided1

Problemi correlati