instalar - virtualenv python 3 tutorial
virtualenv: Especificando qué paquetes usar a nivel de sistema vs local (1)
Posible duplicado:
Haga que virtualenv herede paquetes específicos de sus paquetes de sitio global
¿Hay una manera de crear un virtualenv
para Python y especificar qué paquetes deben usarse (heredarse) de la instalación de todo el sistema, y cuáles deben ignorarse de la instalación de todo el sistema?
Más específicamente, digamos, por ejemplo, que hay una instalación de todo el sistema de:
numpy
scipy
matplotlib
Me gustaría crear un entorno virtual tal que:
- Utiliza la instalación de
numpy
el sistema denumpy
yscipy
- Ignora el
matplotlib
todo el sistema y me permite instalar / actualizar mis propias versiones (conpip -U matplotlib
).
es posible?
La forma más sencilla de hacerlo es crear un virtualenv que incluya los paquetes del sitio del sistema y luego instalar las versiones que necesita:
$ virtualenv --system-site-packages foo
$ source foo/bin/activate
$ pip install Django==1.4.3
También puede limpiar el virtualenv luego verificando la salida de (la eliminación de system-site-packages con pip freeze
y eliminando los paquetes que no desea.pip uninstall
ya no funciona con las versiones más nuevas de virtualenv)
Otra forma sería crear un virtualenv limpio y vincular las partes que necesita:
$ virtualenv --no-site-packages foo
$ source foo/bin/activate
$ ln -s /usr/lib/python2.7/dist-packages/PIL* $VIRTUAL_ENV/lib/python*/site-packages
Los comandos pueden ser ligeramente diferentes en un entorno no unixish. Las rutas también dependen del sistema que está utilizando. Para averiguar la ruta a la biblioteca, inicie el shell de Python (sin un virtualenv activado), importe el módulo y verifique module_name.__path__
. p.ej
Python 2.7.3 (default, Sep 26 2012, 21:51:14)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import PIL
>>> PIL.__path__
[''/usr/lib/python2.7/dist-packages/PIL'']