Cambiando PYTHONPATH en shell

Soy un usuario completamente nuevo de Python y shell scripts, y me he encontrado con un callejón sin salida con esto, incluso después de buscar en Google el problema y golpear mi cabeza contra el escritorio mucho. Cualquier ayuda es apreciada!

Estoy ejecutando Python 2.7.3 en un shell en el que hago SSH; Descargué algo de código para ejecutar algunos progtwigs / análisis. Cuando ejecuto el progtwig inicial, obtengo el siguiente error:

Traceback (most recent call last): File "./[script1].py", line 7, in  import [script1] File "[directory]/[script].py", line 22, in  import gdata.spreadsheet.service ImportError: No module named gdata.spreadsheet.service 

[Script 1] se refiere a un script de python en la misma carpeta que venía como parte del paquete de código, y también llama al paquete de Google Data python, que he descargado en la misma carpeta y que tengo gunzipped, tar desempaquetado y luego instalado (con ./configure, etc.) Basado en la búsqueda de los errores, mi mejor conjetura es que hay algo mal con PYTHONPATH aquí, y no está encontrando [script1] .py y la carpeta Gdata, aunque ambos están dentro de mismo directorio que el script que estoy ejecutando. “Echo $ PYTHONPATH” me dice que es una variable no definida, y también hay un archivo init en blanco dentro del directorio. No hay archivos que contengan la palabra “bash” o “bashrc” en ningún lugar dentro de ese directorio. Del mismo modo, parece que no puedo encontrar ningún archivo “sys.path”, aunque cuando inicio Python e imprimo (sys.path) obtengo el resultado resultante:

 ['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PIL', '/usr/lib/python2.7/dist-packages/gst-0.10', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7', '/usr/lib/python2.7/dist-packages/ubuntu-sso-client', '/usr/lib/python2.7/dist-packages/ubuntuone-client', '/usr/lib/python2.7/dist-packages/ubuntuone-installer', '/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol', '/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode'] 

También he intentado

 export PYTHONPATH=[directory] 

en mi shell, pero escupe “exportar: comando no encontrado”.

¡Por favor, perdone a un recién llegado a todo esto, cualquier ayuda (si mis sospechas son correctas o no y cómo resolverlas) sería muy apreciada!

Configuración de PYTHONPATH

Por la salida del comando de export que probaste, parece que el shell que estás usando no es bash. Esta publicación cubre algunas formas sobre cómo descubrir en qué shell estás. Después de descubrir su shell, puede descubrir cómo configurar las variables de entorno (PYTHONPATH) en ese shell.

También puede probar estos para configurar PYTHONPATH durante la ejecución de su script (el último debería funcionar en (T) CSH):

 PYTHONPATH=your_directory python script_name 

y

 env PYTHONPATH=your_directory python script_name 

Prueba de que el PYTHONPATH que configuras funciona.

Para ver que PYTHONPATH realmente se establece y funciona dentro de Python, en lugar de ejecutar el script como se python script_name arriba con python script_name , use python -c 'import os; print os.getenv("PYTHONPATH")' python -c 'import os; print os.getenv("PYTHONPATH")' . Debe mostrar el PYTHONPATH que acaba de establecer.

Del mismo modo, la impresión de sys.path en el intérprete de Python debe generar la ruta en PYTHONPATH como una de las entradas.

Si PYTHONPATH está configurado correctamente

Si configura satisfactoriamente PYTHONPATH y el problema persiste, intente ejecutar el intérprete de Python desde la ruta en la que tiene gdata .

 cd path_which_has_subdirectory_gdata python 

En el intérprete de Python, intente importar el módulo gdata:

 import gdata 

Si eso funciona, intente también importar el módulo que causa ImportError :

 import gdata.spreadsheet.service 

Si estas importaciones funcionan desde el intérprete de Python, es probable que haya algún problema con su [script1]. Si no, intente confirmar que el módulo gdata realmente está donde cree que está; el directorio correcto para el módulo debe contener un archivo llamado __init__.py y PYTHONPATH debe configurarse para que apunte al directorio sobre el módulo en la jerarquía.