¿Hay alguna forma de decirle a Python acerca de las ubicaciones adicionales de site-packages
sin modificar las secuencias de comandos existentes?Configuración de Python para usar ubicaciones adicionales para los paquetes de sitio
En mi servidor CentOS 5.5 tengo una instalación de Python 2.7 que está instalada en /opt/python2.7.2
y hay una carpeta site-packages
en /opt/python2.7.2/lib/python2.7/site-packages
.
La razón de esto es que no quería molestar a la instalación existente de Python 2.4 que se envió con la distribución 5.5.
Sin embargo, una aplicación de Python de terceros también agregó una carpeta site-packages
en: /usr/local/lib/python2.7/site-packages
y se instaló en esa ubicación.
Esto es parcialmente mi culpa porque no modifiqué el PREFIX
en la aplicación Makefile
antes de instalar, sin embargo, no hay mucho que pueda hacer ahora.
sé que puedo hacer esto:
import sys; sys.path.insert(0, "/usr/local/lib/python2.7/site-packages")
Sin embargo, implicaría me rastrear cada guión y añadiendo lo anterior que no es ideal debe haber cambios en el futuro.
Para evitar esto he creado un enlace simbólico en /opt/python2.7.2/lib/python2.7/site-packages
a la ubicación de esta aplicación de terceros:
ln -sf /usr/local/lib/python2.7/site-packages/theapp /opt/python2.7.2/lib/python2.7/site-packages/theapp
Esto parece funcionar bien, pero me pregunto si hay una manera mejor?
Esto funciona bien, sin embargo, decidí mordir la viñeta y arreglar la implementación. Pero gracias de todos modos, es útil saberlo para el futuro. – Kev
Esto agrega la ruta al * end * de la ruta de Python. ¿Qué sucede si quiere que sus paquetes de sitios personalizados sean lo primero? He estado experimentando con un archivo sitecustomize.py con cierto éxito, pero parece haber casos extremos en los que simplemente manipular la ruta de Python no es suficiente. – wryfi