En un sistema Ubuntu (10.10), tengo un paquete Python en el que se instala /usr/local/lib/python2.6/site-packages/
. Esto no está contenido en la ruta predeterminada (sys.path). ¿Cómo agrego este directorio a la ruta?
Establecer la $PYTHONPATH
variable de entorno es una solución, por supuesto, pero estoy buscando una forma más elegante de hacerlo. Por ejemplo, easy_install
también incluye paquetes instalados, mi sys.path se ve así:
['', '/usr/local/lib/python2.6/dist-packages/keyring-0.5.1-py2.6.egg',
'/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk',
'/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload',
'/usr/local/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages',
'/usr/lib/python2.6/dist-packages/PIL', '/usr/lib/pymodules/python2.6',
'/usr/lib/pymodules/python2.6/gtk-2.0']
entonces la ruta obviamente no es la predeterminada incorporada en el binario de Python.
¿Hay un solo archivo de configuración que contenga las entradas anteriores? ¿O de qué maneras es posible modificarlo?
sitecustomize.py
quesite.py
intenta importar y modificarsys.path
allí.Puede crear un nuevo archivo llamado
/etc/profile.d/local_python.sh
con el contenidoLo cual establecerá la
PYTHONPATH
variable para todos los usuarios registrados en su sistema.fuente
Me gustaría resumir mis hallazgos sobre la modificación del camino de Python. Hay dos maneras de hacerlo.
PYTHONPATH
Cualquier archivo .pth que se encuentre en la ruta predeterminada (ver más abajo) incluirá su contenido
sys.path
. El formato de dicho archivo .pth es simple: una ruta (carpeta) por línea. Sorprendentemente, las rutas pueden ser absolutas o relativas al archivo .pth .La ruta predeterminada es donde reside el intérprete y
<some-prefix>/lib/python<version>/site-packages
dónde<some-prefix>
suele estar/usr/
.PYTHONPATH
es la variable ambiental de su sistema operativo. En sistemas unix, los enumera porenv
. La modificación global de tales variables se realiza a través de scripts .sh dentro de la/etc/profile.d/
carpeta como se menciona en @ TestUser16418.fuente
Por ejemplo, si desea importar el
suds
módulo que está disponible como un.egg
archivo:fuente