Normalmente preferiría crear virtualenvs con la opción --no-site-packages para un mayor aislamiento, y también porque los paquetes globales predeterminados de python incluyen bastantes paquetes, y generalmente la mayoría de ellos no son necesarios. Sin embargo, todavía quisiera mantener algunos paquetes seleccionados en global, como PIL o psycopg2. ¿Hay una buena manera de incluirlos en el virtualenv, que también se puede automatizar fácilmente?Incluyendo paquete global en un virtualenv que se ha creado con --no-site-packages
Respuesta
Si está usando virtualenvwrapper y es posible que pueda usar la secuencia de comandos postmkvirtualenv para crear automáticamente enlaces simbólicos en el nuevo directorio de paquetes de sitios de virtualenv.
#!/bin/sh
cdsitepackages
ln -s /path/to/system/site-packages/package-name
cdvirtualenv
Olvidé esta pregunta, pero terminé haciendo exactamente esto. –
No he intentado esto con esos paquetes específicos, pero supongo que un simple enlace simbólico de los paquetes de sitio globales en los paquetes de sitio de virtualenv podría funcionar, y esto es fácilmente secuenciable.
Si está utilizando virtualenvwrapper, el comando shell add2virtualenv
debe estar presente en una virtualenv activo. Uso:
add2virtualenv /path/to/package
para añadir una entrada al archivo de PTH _virtualenv_path_extensions.pth
en sus virtualenv site-packages.
La ventaja de utilizar add2virtualenv en lugar de crear enlaces simbólicos usted mismo, es que puede eliminar el paquete de ser importable al comentar su línea en el archivo PTH. Esto facilita la verificación de la validez de su código contra varias versiones de una biblioteca de la que depende.
Sí, estoy de acuerdo, esta es ahora la mejor manera. Sin embargo, estoy bastante seguro de que no estaba disponible hace un par de años. –
Probablemente no estaba disponible. Ciertamente soy un gran admirador de virtualenvwrapper por cosas tan útiles como esa. Por supuesto, también podría hacerlo manualmente, escribiendo su propio archivo PTH. – pcurry
- 1. javascript: lanzar un objeto que se ha creado con eval
- 2. encontrar todas las funciones (incluyendo privado) en un paquete
- 3. Implementando Django con virtualenv dentro de un paquete de distribución?
- 4. creando un paquete simple que se puede instalar a través de Pip y virtualenv
- 5. Compartir scripts que requieren que se active un virtualenv
- 6. ¿Cómo puedo ejecutar un paquete creado con Simple Build Tool?
- 7. Incluyendo archivos de script en un paquete de extensión R
- 8. Python - instalar manualmente el paquete usando virtualenv
- 9. libphp5.so no se ha creado después de la compilación y el directorio de prefix no se ha creado
- 10. ¿Alguien ha creado un slicer de programa en Java?
- 11. ¿Se ha ido el paquete scala.actors?
- 12. ¿Alguien ha creado un sitio web 3D que funcione en un monitor 3D?
- 13. NuGet: comando de paquete no está incluyendo dependencias NuGet
- 14. ¿Se ha cargado todo el paquete en MsDeploy.axd?
- 15. ¿Alguien ha creado una herramienta de prueba DataContract?
- 16. WCF: myservice.svc? Wsdl muestra "¿Ha creado un servicio.", No WSDL?
- 17. add2virtualenv (envoltorio virtualenv) no funciona con scipy
- 18. ha creado un directorio de alias Apache, pero no funciona
- 19. Problema con virtualenv - no se puede activar
- 20. Error de importación con virtualenv
- 21. invocar o BeginInvoke no pueden ser llamados en un control hasta que el identificador de ventana se ha creado
- 22. El paquete SSIS no ha podido abrir la memoria compartida global para comunicarse con el rendimiento DLL
- 23. Incluyendo HTML en cadena de paquete de recursos JSF - posible?
- 24. PyGame en un virtualenv en OS X con brew?
- 25. se establece el atributo id con knockoutjs incluyendo un prefijo
- 26. Cómo iniciar Python Idle desde un entorno virtual (virtualenv)
- 27. Incluyendo glib.h en un proyecto de CMake
- 28. Redireccionando con un 201 creado
- 29. ¿Cómo saber si se ha creado/inicializado un cuadro de diálogo de MFC?
- 30. ¿Alguien ha creado con éxito una aplicación PyObjC en Snow Leopard?
Relacionados: [Instalar ciertos paquetes usando virtualenv] (http://stackoverflow.com/questions/434407/) –