Estoy intentando crear un virtualenv e instalar paquetes desde requisitos.txt que tengo con el proyecto.
Cuando creo el entorno, compruebo que Python y Pip efectivamente provienen de ese entorno. Es decir, cuando ejecuto:
source ./virtualenv/bin/activate
which pip
which python
Obtengo resultados que apuntan a los binarios ubicados dentro del directorio virtualenv
Luego procedo a instalar los paquetes:
pip install -r requirements.txt
Por un tiempo, me estaba dando problemas con la pkg-resources=0.0.0
línea dentro del archivo de requisitos.txt. Al final, esa línea se ingresa en este archivo debido a un error en Ubuntu. Como probablemente puedas suponer, creé este archivo en una máquina Ubuntu.
Una vez que tacho la línea, la instalación continúa.
Sin embargo, cuando ejecuto pip list después de la instalación, la lista contiene solo
pip (8.1.1) paquete-recursos (0.0.0) herramientas de configuración (20.7.0)
Es más, si desactivo virtualenv y ejecuto pip list globalmente, veo que todas las dependencias se instalaron globalmente.
Hay dos preguntas aquí. Una, que es muy obvia: ¿por qué sucede? La segunda es ¿cómo podría limpiar mis paquetes globales y desinstalar los contaminantes que ahora residen allí?
Apéndice:
Otro comportamiento extraño más consiste en lo siguiente. Cuando intento ejecutar sudo pip uninstall -r requirements.txt
desde virtualenv con la esperanza de revertir la instalación global, aparece el siguiente error:
No se puede desinstalar el requisito aldryn-apphooks-config, no instalado
Es decir, parece que cuando intento desinstalar, pip intenta buscar paquetes dentro de virtualenv.
Por otro lado, cuando desactivo virtualenv, puedo desinstalar exitosamente los paquetes de la instalación global usando el mismo comando.
De alguna manera, hay una diferencia en cómo funciona el comando pip install en Ubuntu en comparación con el comando pip uninstall. "Buscan" paquetes en diferentes lugares.