una otro modulos lista librerias libreria incluir importar funciones directorio desde crear como bibliotecas basicas archivo python pythonpath

otro - librerias basicas de python



Crear un directorio de paquetes de sitio secundario(y cargar paquetes desde archivos.pth en él) (2)

Echa un vistazo al módulo del site . Proporciona la función addsitedir que debe hacer lo que quieras.

La forma más fácil de usar esto sería crear un archivo llamado sitecustomize.py o usercustomize.py y colocarlo en un directorio PYTHONPATH actual (o cualquier directorio que termine en sys.path ) con el siguiente contenido:

import site site.addsitedir(''/usr/local/lib/python2.7'')

Cuando Python está comenzando, se hace un intento de importar sitecustomize y luego usercustomize , por lo que esto funciona. De la documentación del sitio:

Después de estas manipulaciones de ruta, se intenta importar un módulo llamado sitecustomize , que puede realizar personalizaciones arbitrarias específicas del sitio. Normalmente lo crea un administrador del sistema en el directorio de paquetes de sitio. Si esta importación falla con una excepción ImportError , se ignora silenciosamente.

Después de esto, se intenta importar un módulo llamado usercustomize , que puede realizar personalizaciones arbitrarias específicas del usuario, si ENABLE_USER_SITE es verdadero. Este archivo está destinado a ser creado en el directorio de paquetes de sitios del usuario (ver más abajo), que es parte de sys.path menos que esté deshabilitado por -s . Un ImportError será ignorado silenciosamente.

Me gustaría instalar algunos paquetes en un directorio de site-packages (más allá de las ubicaciones estándar del sistema). ¿Hay alguna manera de configurar esto de tal manera que los archivos .pth en ellos sean respetados?

Antecedentes: Estoy usando OS X, virtualenv y homebrew. Hay algunos paquetes (especialmente wxPython en mi caso) que no se instalan 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 apuntar a esta carpeta y dejar el mantenimiento de todos los artículos bajo el control de brew . Parece, sin embargo, que esto no es posible.

Ciertamente no soy el único interesado en este tema. Apostaría un buen número de preguntas genéricas de ''archivos pth que no funcionan'' y las publicaciones en línea con las que me he topado están relacionadas con este problema. ¿Hay una buena solución?


PEP 370 abordaba específicamente la creación de directorios de site-packages por usuario, para tratar la situación en la que el usuario no tiene acceso de administrador a los site-packages todo el sistema.

Por ejemplo, en Unix (incluido Mac OS), y suponiendo que uno use Python 3.6, se puede crear el siguiente directorio y colocar los archivos .pth interior.

~/.local/lib/python3.6/site-packages