Hay una --user
opción para pip que puede instalar un paquete de Python por usuario:
pip install --user [python-package-name]
Utilicé esta opción para instalar un paquete en un servidor para el que no tengo acceso de root. Lo que necesito ahora es desinstalar el paquete instalado en el usuario actual. Traté de ejecutar este comando:
pip uninstall --user [python-package-name]
Pero tengo:
no such option: --user
¿Cómo puedo desinstalar un paquete que instalé pip install --user
, además de buscar y eliminar manualmente el paquete?
He encontrado este articulo
pip no se puede desinstalar del directorio de paquetes de sitio por usuario
que describe que desinstalar paquetes del directorio de usuarios no es compatible. Según el artículo, si se implementó correctamente, entonces con
pip uninstall [package-name]
el paquete que se instaló también se buscará en los directorios de usuarios. Pero todavía me queda un problema. ¿Qué sucede si se instaló el mismo paquete tanto en todo el sistema como por usuario? ¿Qué sucede si alguien necesita apuntar a un directorio de usuarios específico?
fuente
--user
entonces, desinstalar sin--user
hará lo que desee.Respuestas:
Habiendo probado esto usando Python 3.5 y pip 7.1.2 en Linux, la situación parece ser esta:
pip install --user somepackage
instala$HOME/.local
y desinstalarlo funciona usandopip uninstall somepackage
.Esto es cierto si
somepackage
se instala o no en todo el sistema al mismo tiempo.Si el paquete se instala en ambos lugares, solo se desinstalará el local. Para desinstalar el paquete usando todo el sistema
pip
, primero desinstálelo localmente, luego ejecute el mismo comando de desinstalación nuevamente, conroot
privilegios.Además del directorio de instalación de usuario predefinido,
pip install --target somedir somepackage
instalará el paquete ensomedir
. No hay forma de desinstalar un paquete de ese lugar usandopip
. (Pero hay una solicitud de extracción no fusionada algo antigua en Github que se implementapip uninstall --target
).Dado que los únicos lugares
pip
desde los que se desinstalará son los de todo el sistema y los usuarios locales predefinidos, debe ejecutarsepip uninstall
como el usuario respectivo para desinstalar desde el directorio de instalación local de un usuario determinado.fuente
jedi
instalado/usr/lib64/python2.7/site-packages/
. Cuando lo hago, como un usuario normal:pip install --user jedi
y luegopip uninstall jedi
, pip intenta desinstalar/usr/lib64/python2.7/site-packages/jedi
y luego se iniciaPermission denied
. Así que si--user
no existe para el comando de desinstalación, ¿Cómo se desinstala digo no para tratar de desinstalar/usr/lib64/python2.7/site-packages/jedi
, pero~/.local/lib64/python3.6/site-packages/jedi
?ejemplo para desinstalar el paquete 'oauth2client' en MacOS:
fuente
Sin embargo, tenga cuidado con aquellos que usan
pip install --user some_pkg
dentro de un entorno virtual .En este caso, debe desactivar el entorno virtual actual , luego usar el correspondiente
python
/pip
ejecutable para enumerar o desinstalar los paquetes del sitio del usuario:Tenga en cuenta que este problema se informó hace unos años . Y parece que la conclusión actual es:
--user
no es válida dentro de un entorno virtualpip
, ya que la ubicación de un usuario realmente no tiene sentido para un entorno virtual.fuente
--user
dentro del env virtual, ¿hay alguna manera de revertir eso ?, porquepip list
qué no funciona ....Creo que es posible desinstalar paquetes instalados con
--user
flag. Este me funcionó;pip freeze --user | xargs pip uninstall -y
Para python 3;
pip3 freeze --user | xargs pip3 uninstall -y
Pero de alguna manera estos comandos no desinstalan setuptools y pip. Después de esos comandos (si realmente quieres una pitón limpia) puedes eliminarlos con;
pip uninstall setuptools && pip uninstall pip
fuente
La respuesta aún no es posible . Tienes que eliminarlo manualmente.
fuente
Como @ thomas-lotze ha mencionado, actualmente las herramientas de pip no lo hacen, ya que no hay una opción de usuario correspondiente. Pero lo que encuentro es que puedo registrar ~ / .local / bin y buscar el pip #. # Específico que me parece que corresponde a la opción --user.
En mi caso:
Y luego simplemente desinstale con la versión específica de pip.
fuente
./pip2 freeze | grep -v "^-e" | xargs pip uninstall -y
para todo excepto los paquetes instalados en modo editableEstoy ejecutando Anaconda versión 4.3.22 y un entorno python3.6.1, y tuve este problema. Aquí está la historia y la solución:
Hice esto en mi entorno python3.6 y obtuve este error.
Luego, intenté descargar python3.6 y poner el python3.dll en la carpeta y en varias carpetas. nada ha cambiado.
finalmente, esto lo solucionó:
(la otra versión de conda-forge todavía está instalada) Esto dejó solo la versión de conda, y eso funciona en 3.6.
¡trabajando!
fuente