Medio Ambiente: Debian 4.0PYTHONPATH ignorado
Python 2.4
Mi 'proyecto' se instala en:
/usr/lib/python2.4/site-packages/project.
Pero yo quiero usar mi copia de trabajo en lugar de la instalada, que se encuentra en:
/home/me/dev/proyecto/src
Así que lo que hago es:
PYTHONPATH exportación =/home/me/dev/proyecto/src
ipython
importación foo # que está en src
foo.__file__
*/usr/lib/python2.4/site-packages/project/foo.py*
en lugar de:
/home/me/dev/proyecto/src/proyecto/foo .py
¿Cómo es que vino? Trato de comprobar los pathes (después de haber hecho la exportación arriba) y lo que veo es: sys
importación, os
sys.path
[ '', '/ usr/bin ', ' /usr/lib/python2.4/site-packages ', '/home/me/dev/project/src ', ' /usr/lib/python24.zip ', '/usr/lib/python2.4 ', ' /usr/lib/python2.4/plat-linux2 ', ' /usr/lib/python2.4/lib-tk ', '/u sr/lib/python2.4/lib-dynload ', ' /usr/local/lib/python2.4/site-packages ', ' /usr/lib/python2.4/site-packages/PIL ', '/var/lib/python-support/python2.4', '/usr/lib/python2.4/site-packages/IPython/Extensions', '/home/me/.ipython']
os.environ [ 'PYTHONPATH']
/home/me/dev/proyecto/src
máquina funciona correctamente: > exportación PYTHONPATH = foo > ipython > import sys > * sys.path = [ '/etc/python2.4', '/ home/me/foo ', ' /usr/lib/python24.zip ', ' /usr/lib/python2.4 ', ' /usr/lib/python2.4/plat-linux2 ', '/usr/lib/python2 .4/lib-tk ', ' /usr/lib/python2.4/lib-dynload ', ' /usr/local/lib/python2.4/site-packages ', '/usr/lib/python2 .4/site-packages ', '/var/lib/python-support/python2.4', ] * En la máquina no funciona correctamente, */usr/lib/python2.4/site-packages * va antes en la lista ... –
Vamos a hacer algunas preguntas precisas en su lugar: Todo el mundo está de acuerdo en que si configuro PYTHONPATH en una ruta de módulo válida, ¿debería cargar este módulo primero independientemente? Todo el mundo está de acuerdo con que python intente cargar módulos siguiendo el orden de sys.path? Si el aboce es correcto, ¿por qué python no inserta PYTHONPATH al comienzo de sys.path (después de los huevos)? –