Cómo desinstalar un paquete instalado con pip install --user

Resuelto Serjik asked hace 9 años • 7 respuestas

Hay una --useropció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. Intenté ejecutar este comando:

pip uninstall --user [python-package-name]

Pero obtuve:

no such option: --user

¿Cómo puedo desinstalar un paquete que instalé con pip install --user, además de buscarlo y eliminarlo manualmente?

he encontrado este articulo

pip no se puede desinstalar del directorio de paquetes de sitio por usuario

que describe que no se admite la desinstalación de paquetes del directorio de usuarios. 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é pasaría si se instalara el mismo paquete en todo el sistema y por usuario? ¿Qué pasa si alguien necesita dirigirse a un directorio de usuarios específico?

Serjik avatar Oct 29 '15 18:10 Serjik
Aceptado

Habiendo probado esto usando Python 3.5 y pip 7.1.2 en Linux, la situación parece ser la siguiente:

  • pip install --user somepackageSe instala en $HOME/.local, y su desinstalación funciona mediante pip uninstall somepackage.

  • Esto es cierto independientemente de que somepackageesté instalado o no en todo el sistema al mismo tiempo.

  • Si el paquete está instalado en ambos lugares, solo se desinstalará el local. Para desinstalar el paquete en todo el sistema usando pip, primero desinstálelo localmente y luego ejecute el mismo comando de desinstalación nuevamente, con rootprivilegios.

  • Además del directorio de instalación del usuario predefinido, pip install --target somedir somepackageel paquete se instalará en somedir. No hay forma de desinstalar un paquete de ese lugar usando pip. (Pero hay una solicitud de extracción no fusionada algo antigua en Github que implementa pip uninstall --target).

  • Dado que los únicos lugares pipdesde los que se desinstalará son todo el sistema y el usuario local predefinido, debe ejecutarlo pip uninstallcomo el usuario respectivo para desinstalar desde el directorio de instalación local de un usuario determinado.

Thomas Lotze avatar Feb 20 '2016 14:02 Thomas Lotze

Ejemplo para desinstalar el paquete 'oauth2client' en MacOS:

pip uninstall oauth2client
Huy - Logarit avatar Mar 06 '2017 13:03 Huy - Logarit

Sin embargo, tengan cuidado aquellos que lo utilizan pip install --user some_pkg dentro de un entorno virtual .

$ path/to/python -m venv ~/my_py_venv
$ source ~/my_py_venv/bin/activate
(my_py_venv) $ pip install --user some_pkg
(my_py_venv) $ pip uninstall some_pkg
WARNING: Skipping some_pkg as it is not installed.
(my_py_venv) $ pip list
# Even `pip list` will not properly list the `some_pkg` in this case

En este caso, debe desactivar el entorno virtual actual y luego usar el ejecutable correspondiente pythonpara pipenumerar o desinstalar los paquetes del sitio del usuario:

(my_py_venv) $ deactivate
$ path/to/python -m pip list
$ path/to/python -m pip uninstall some_pkg

Tenga en cuenta que este problema se informó hace unos años . Y parece que la conclusión actual es: --userno es válido dentro de un entorno virtual pip, ya que la ubicación de un usuario realmente no tiene sentido para un entorno virtual.

YaOzI avatar Jul 09 '2019 08:07 YaOzI

Le recomiendo encarecidamente que utilice entornos virtuales para la instalación del paquete Python. Con virtualenv, evita cualquier conflicto de paquetes y el aislamiento total de los comandos de su área de usuario relacionados con Python.

Para eliminar todos los paquetes instalados globalmente, siga esto;

Es posible desinstalar paquetes instalados con --userflag. Este funcionó para mí;

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 un Python limpio) puedes eliminarlos con;

pip uninstall setuptools && pip uninstall pip

Ahora tienes un entorno Python limpio. Puede crear virtualenv e instalar el paquete dentro de ellos.

thiras avatar Oct 28 '2019 19:10 thiras

La respuesta aún no es posible . Tienes que eliminarlo manualmente.

sorin avatar Feb 20 '2016 15:02 sorin