Estoy buscando una manera de hacer un virtualenv que contendrá solo algunas bibliotecas (que elegí) de la instalación base de Python.
Para ser más concreto, estoy tratando de importar mi matplotlib a virtualenv durante la creación de virtualenv. No se puede instalar de manera eficiente con pip o easy_install, ya que pierde algunas librerías compiladoras fortran. La forma en que lo hacía hasta ahora era copiar manualmente desde
/usr/lib/python2.7/dist-packages/ to virtualenv_name/lib/python2.7/dist-packages/
sin embargo, esto evita que los enlaces importados manualmente sean registrados por yema (que imprime todas las bibliotecas disponibles actualmente en virtualenv).
Entonces, ¿hay alguna manera de hacer una variante selectiva de
virtualenv --system-site-packages
python
virtualenv
El ingeniero significante
fuente
fuente
--system-site-packages
. Respuestas sugiere usar no selectivo--system-site-packages
y luego sobreinstalar algunos paquetes localmente, lo que es diferente y tiene implicaciones diferentes.Respuestas:
Crea el entorno con
virtualenv --system-site-packages
. Luego, active virtualenv y cuando desee que las cosas se instalen en virtualenv en lugar del sistema python, usepip install --ignore-installed
opip install -I
. De esa manera, pip instalará lo que ha solicitado localmente, aunque exista una versión de todo el sistema. Su intérprete de Python buscará primero en el directorio de paquetes de virtualenv, por lo que esos paquetes deberían seguir a los globales.fuente
no-global-site-packages
habilitado. Pero por alguna razón, no sé si había un paquete que se estaba utilizando desde el sistema global. Usarpip install -I
para el paquete desde el interior del virtualenv no funcionó. Finalmente terminé desinstalando temporalmente el paquete tanto del sistema virtualenv como global, luego pude instalarlo nuevamente en el sistema virtualenv y (en ese orden). Entonces ahora funciona bien.Puede usar
--system-site-packages
y luego "sobreinstalar" las cosas específicas para su virtualenv. De esa manera, todo lo que instale en su virtualenv se tomará de allí, de lo contrario, se tomará de su sistema.fuente
Instalar env virtual con
y use
pip install -U to install matplotlib
fuente
Puedes usar
virtualenv --clear
. que no instalará ningún paquete, luego instale los que desee.fuente