raspberry pi3 instalar python virtualenv

python - pi3 - instalar numpy



¿Cómo puedo hacer que virtualenv prefiera sus bibliotecas locales a las bibliotecas globales? (3)

Comprueba algunas cosas.

which python

which pip

Ahora que está seguro de que está ejecutando el correcto, inicie python y:

import sys print "/n".join(sys.path)

Luego salga de python y escriba echo $PATH seguido de echo $PYTHONPATH Sospecho que el problema será visible y si no puede solucionarlo configurando PYTHONPATH , es probable que pueda hacerlo con el módulo del site .

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 creo mi entorno virtual y lo activo con los siguientes comandos:

virtualenv my_personal_python source my_personal_python/bin/activate

Luego instalo la nueva versión de la biblioteca que me interesa usar

pip install numpy==1.6.0

El problema es que cuando ahora importo números aún importa la versión global desactualizada, no la que se encuentra en el my_personal_python/lib/python2.6/site-packacges del entorno virtual.

Ya conozco una posible solución, la marca --no-site-packages, como en:

virtualenv --no-site-packages my_personal_python

Cuando uso esta bandera, la importación se comporta como deseo. Pero no quiero usar este indicador porque no quiero volver a instalar todos los paquetes localmente, solo quiero anular un par de ellos.

(Estoy usando python 2.6, virtualenv 1.6.1, y la variable PYTHONPATH en mi máquina no está configurada).

Actualizar Incluso si agrego el directorio de paquetes de sitio desde el entorno virtual al comienzo de la ruta de acceso de python, el número 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.


Esto funcionó para mí.

Mi which python y which pip eran exactamente correctos pero el sys.path estaba equivocado. Mi virtualenv está en ~/virtualenvs/envy . Originalmente estaba haciendo:

export PYTHONPATH=~/virtualenvs/envy/lib/python2.7/site-packages:$PYTHONPATH

pero esto todavía estaba importando el paquete de todo el sistema en lugar de mi virtualenv. PERO vi esta charla de PyCon en virtualenv y decidí probar:

export PYTHONPATH=~/virtualenvs/envy/lib/python2.7:$PYTHONPATH

Note la falta de site-packages de site-packages en la segunda opción. ¡Y esto realmente funcionó! Espero que ayude a alguien más.


Una solución más para este problema (al menos me ayudó): en mi ~/.local/lib/python2.7/site-packages/easy-install.pth , había líneas (IMHO innecesarias) como /usr/lib/python2.7/dist-packages . La eliminación de estas líneas ayudó, tal vez se quedaron de tiempos mucho más antiguos, cuando easy_install todavía hacía cosas más extrañas.