2012-01-09 27 views
14

De línea de comandos no puedo importar appengine, esto podría ser algo con mi camino pitón:no puede importar módulos que están allí

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

no quiero instalaciones duplicadas, quiero señalar la Intérprete de Python a donde está el módulo que falta. ¿Cómo hago para que el intérprete encuentre los módulos del motor de la aplicación desde el símbolo del sistema? En la aplicación estas importaciones están funcionando.

Respuesta

14

anexar:

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

a la variable de entorno PYTHONPATH debe hacer el truco (SDK de su ubicación puede variar).

+0

veces la orden que añadir a su PYTHONPATH puede hacer una diferencia ya que algunas bibliotecas pueden entrar en conflicto en el orden equivocado. También verifique que sus módulos estén instalados para la misma versión de Python. Es posible que los hayas instalado para Python 2.6 y tenlos en Python 2.7. –

+4

Tuve que cambiar yaml a yaml-3.10 como la respuesta de @ Clyde mencionó – dghubble

8

Para appengine 1.9.6 google ha creado un nuevo directorio "yaml-3.10" que contiene el módulo yaml. Agregué "[appengine install directory] /google_appengine/lib/yaml-3.10" a PYTHONPATH en mi archivo .bashrc y eso resolvió este problema. Por cierto: uso Ubuntu 14.04 LTS.

6

yaml no está instalado en su configuración actual. El paquete yaml se incluye con google_appengine en la carpeta lib. el guión setup.py en la carpeta añadirá el paquete yaml a su pitón actual

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

Esta respuesta podría mejorarse con alguna explicación de por qué asker está teniendo el problema y cómo ejecutar estos comandos solucionará su problema. – ArtOfWarfare

+0

es mejor? – semisided1

Cuestiones relacionadas