Necesito usar Python en un servidor grande donde no tengo acceso de root. Quiero usar una versión más nueva de numpy que la que está instalada globalmente en la máquina. virtualenv
está diseñado exactamente para este propósito, y yo creo mi entorno virtual y que se active con los siguientes comandos:¿Cómo puedo hacer que virtualenv prefiera sus bibliotecas locales sobre las bibliotecas globales?
virtualenv my_personal_python
source my_personal_python/bin/activate
luego instalar la nueva versión de la biblioteca que estoy interesado en utilizar
pip install numpy==1.6.0
El problema es que cuando importo numpy todavía importa la versión global desactualizada, no la única instalación en el directorio my_personal_python/lib/python2.6/site-packacges
del entorno virtual.
ya estoy al tanto de una posible solución, la bandera-paquetes --no-sitio, como en:
virtualenv --no-site-packages my_personal_python
Cuando utilizo este distintivo, la importación se comporta como deseo. Pero no quiero usar esta bandera porque no quiero volver a instalar todos los paquetes localmente, solo quiero anular un par de ellos.
(estoy usando Python 2.6, 1.6.1 virtualenv, y la variable PYTHONPATH en mi máquina no está establecida.)
actualización Incluso si añado el directorio site-packages desde el entorno virtual para Al principio de la ruta de Python, Numpy no se importa desde esta ubicación (aunque otros paquetes se importan desde esta ubicación). Tal vez este problema es específico de numpy y no ocurre con los paquetes en general.
AFAIK, debería funcionar como usted espera. Tal vez sea un error en la versión anterior de virtualenv que presumiblemente está instalado en esa computadora ... –
no estoy seguro de si este es el problema, pero ¿sabe pip que usa el entorno virtual activado? Compruebe y vea si numpy 1.6.0 está instalado en sus paquetes de sitio globales. – mklauber
pip sabe cómo usar el entorno virtual, y ha instalado correctamente la versión 1.6.0 en el directorio de paquetes de sitio del entorno virtual. La versión global de numpy es 1.4.0. – conradlee