Me gustaría instalar algunos paquetes en un directorio de terceros site-packages
(más allá de las ubicaciones de sistema estándar). ¿Hay alguna manera de configurar esto para que se respeten los archivos .pth?Crear un directorio secundario de paquetes de sitio (y cargar paquetes desde archivos .pth)
Antecedentes: Estoy usando OS X, virtualenv y homebrew. Hay algunos paquetes (notablemente wxPython en mi caso) que no se instalan muy bien a través de pip en virtualenv. En estos casos, hay paquetes homebrew que funcionan en su lugar. Homebrew crea una tercera carpeta de paquetes de sitio en /usr/local/lib/python2.7
. Me gustaría simplemente señalar esta carpeta y dejar el mantenimiento de todos los elementos allí bajo el control de brew
. Parece, sin embargo, que esto no es posible.
- Anexando a la ruta a través de
$PYTHONPATH
no carga los archivos .thth. (Should Python 2.6 on OS X deal with multiple easy-install.pth files in $PYTHONPATH?) - Python no permite el uso anidado o recursivo de archivos .pth. (Nested .pth Files or Loading Extra site-dirs from a Network)
- El contenedor para virtualenv
add2virtualenv
agrega algunos conocimientos adicionales al archivo .thth más allá de simplemente tener el directorio en la lista, pero creo que simplemente reordena la lista de rutas.
Ciertamente no soy el único interesado en este tema. Apuesto que una gran cantidad de las preguntas genéricas de 'archivos pth no funcionan' y las publicaciones en línea con las que he tropezado están relacionadas con este tema. ¿Hay una buena solución?
Haz sitecustomize.py o usercustomize.py ejecutar automáticamente en el arranque? Editar: [sí, sí lo hacen] (http://docs.python.org/library/site.html). ¡Gracias! –
@MattB. Sí, edité mi respuesta con información adicional. La documentación proviene de la parte superior de la página del módulo del sitio que he vinculado en mi respuesta. –
Todavía no entiendo completamente cómo funciona el sitio, pero: (1) no debería hacerlo mediante addsitedir ('/ usr/local'), es decir, el prefijo alternativo (pero no funciona para mí), o (2) addsitedir ('/ usr/local/lib/python2.7/site-packages') la ruta de acceso a agregar, y en ese segundo caso, ¿por qué no solo agregarlo a PYTHONPATH? –