Pregunta

No tengo mucha experiencia con tcsh, pero estoy interesado en aprender. He tenido problemas para que Python vea PYTHONPATH. Puedo hacer eco de $ PYTHONPATH, y es correcto, pero cuando inicio Python, mis rutas no aparecen en sys.path. ¿Alguna idea?

EDITAR:

[dmcdonal@tg-steele ~]$ echo $PYTHONPATH
/home/ba01/u116/dmcdonal/PyCogent-v1.1

>>> from sys import path
>>> from os import environ
>>> path
['', '/apps/steele/Python-2.5.2/lib/python2.5/site-packages/setuptools-0.6c8-py2.5.egg', '/apps/steele/Python-2.5.2/lib/python2.5/site-packages/FiPy-2.0-py2.5.egg', '/apps/steele/Python-2.5.2', '/apps/steele/Python-2.5.2/lib/python25.zip', '/apps/steele/Python-2.5.2/lib/python2.5', '/apps/steele/Python-2.5.2/lib/python2.5/plat-linux2', '/apps/steele/Python-2.5.2/lib/python2.5/lib-tk', '/apps/steele/Python-2.5.2/lib/python2.5/lib-dynload', '/apps/steele/Python-2.5.2/lib/python2.5/site-packages', '/apps/steele/Python-2.5.2/lib/python2.5/site-packages/Numeric']
>>> environ['PYTHONPATH']
'/apps/steele/Python-2.5.2'
¿Fue útil?

Solución

¿Cómo estás configurando PYTHONPATH? Podrías estar confundiendo el conjunto de tcsh contra el setenv. Utilice " establecer " para configurar lo que tcsh llama variables de shell y usar " setenv " para establecer variables de entorno . Por lo tanto, debe usar setenv para que Python lo vea. Por ejemplo:

$ set FOO='bar'
$ echo $FOO
bar
$ python -c 'import os; print os.getenv("FOO")'
None

$ setenv BAR 'wiz'
$ echo $BAR
wiz
$ python -c 'import os; print os.getenv("BAR")'
wiz

Hay más información disponible en la sección de variables de la documentación de tcsh .

Otros consejos

Asegúrese de que no está iniciando Python con la opción -E (que es: ignorar las variables de entorno). Si inicias Python a través de un script de shell o alguna otra aplicación, simplemente comprueba que no agregue nada.

Dado que la lista de sys.path es larga, puede ser difícil perder sus rutas. Las cosas de PYTHONPATH normalmente se agregan a la mitad de la lista, después de todas las rutas de la biblioteca. ¿Alguna posibilidad de que tus caminos estén ahí, simplemente enterrados en el medio?

Comprobar:

  1. PYTHONPATH está en os.environ,
  2. y establezca el valor correcto de una lista de rutas separadas por dos puntos.

Si lo es, y puedes confirmar que tus rutas no están en sys.path, has encontrado un error.

Si no está en os.environ, su entorno no está pasando a Python (probablemente otro error).

Por supuesto, muéstranos el código real / exportaciones, y alguien te lo dirá rápidamente.

También tengo el mismo problema, incluso configuré el entorno PYTHONPATH correctamente en .cshrc cuando usé Python 2.5.1 , cuando cambio el a Python 2.6.2 , funciona bien. Parece que es un error de Python.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top