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

Hay una opción --user 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 tengo:

 no such option: --user 

¿Cómo puedo desinstalar un paquete que instalé con pip install --user , aparte de buscar y eliminar el paquete manualmente?

He encontrado este articulo

pip no puede desinstalar desde el directorio de paquetes de sitio por usuario

que describe que la desinstalación de paquetes del directorio de usuarios no es compatible. De acuerdo con el artículo si fue implementado correctamente entonces con

 pip uninstall [package-name] 

El paquete que se instaló también se buscará en los directorios de usuarios. Pero todavía queda un problema para mí. ¿Qué sucede si el mismo paquete se instaló en todo el sistema y por usuario? ¿Qué pasa si alguien necesita apuntar a un directorio de usuario específico?

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

  • pip install --user somepackage instala en $HOME/.local , y la desinstalación funciona si se usa pip uninstall somepackage .

  • Esto es cierto independientemente de si somepackage también se instala en todo el sistema al mismo tiempo.

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

  • Además del directorio de instalación de usuario predefinido, pip install --target somedir somepackage instalará el paquete en somedir . No hay manera de desinstalar un paquete desde un lugar así usando pip . (Pero hay una solicitud de extracción no combinada algo antigua en Github que implementa la pip uninstall --target ).

  • Dado que los únicos lugares desde donde se desinstalará pip son para todo el sistema y para usuarios locales predefinidos, debe ejecutar pip uninstall como el usuario respectivo para desinstalar desde el directorio de instalación local de un usuario determinado.

Ejemplo para desinstalar el paquete ‘oauth2client’ en MacOS:

 pip uninstall oauth2client 

La respuesta no es posible todavía . Tienes que eliminarlo manualmente.

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 verificar ~ / .local / bin y buscar el pip #. # Específico que me parece que corresponde a la opción –user.

En mi caso:

 antho@noctil: ~/.l/bin$ pwd /home/antho/.local/bin antho@noctil: ~/.l/bin$ ls pip* pip pip2 pip2.7 pip3 pip3.5 

Y luego simplemente desinstalar con la versión pip específica.

Estoy ejecutando la versión 4.3.22 de Anaconda y un entorno python3.6.1, y tuve este problema. Aquí está la historia y la solución:

 pip uninstall opencv-python # -- the original step. failed. ImportError: DLL load failed: The specified module could not be found. 

Hice esto en mi entorno python3.6 y obtuve este error.

 python -m pip install opencv-python # same package as above. conda install -c conda-forge opencv # separate install parallel to opencv pip-install opencv-contrib-python # suggested by another user here. doesn't resolve it. 

Luego, intenté descargar python3.6 y poner python3.dll en la carpeta y en varias carpetas. nada ha cambiado.

Finalmente, esto lo arregló:

 pip uninstall opencv-python 

(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.

 >>>import cv2 >>> 

¡trabajando!

Puede desinstalar todos los paquetes a la vez.

 1. First, install pip-purge. pip install pip-purge 2. Then, Run pip-purge 

Asegúrate de ejecutar solo en un virtualenv