Hay un --user opción para los pip que se puede instalar un paquete de Python por usuario:

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

He utilizado esta opción para instalar un paquete en un servidor para los que no tengo acceso 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 yo tengo:

no such option: --user

¿Cómo puedo desinstalar un paquete que he instalado con pip install --user, aparte de búsqueda manual y eliminar el paquete?

He encontrado este artículo

pip no se puede desinstalar desde la página de usuario-directorio de paquetes

que describe que la desinstalación de los paquetes desde el directorio de usuario no se admite. Según el artículo, si se implementa correctamente, a continuación, con

pip uninstall [package-name]

el paquete que se instala serán también se realizaron búsquedas en directorios de usuario. Pero un problema aún sigue siendo para mí. ¿Y si el mismo paquete se ha instalado en el sistema y por el usuario?
Lo que si alguien tiene que apuntan a un determinado directorio de usuario?

  • No, usted tiene que fijar un virtualenv por usuario:grupo y dar la debida sistema de permisos a la carpeta que la contiene.
  • No hay manera de instalar un paquete de todo el sistema para todos los usuarios y, a continuación, de forma selectiva desinstalarlo para algunos usuarios. Si el paquete se ha instalado como --user luego desinstalar sin --user hace lo que usted desea.
  • No tengo el permiso de todo el sistema y no quieren, sólo tengo que desinstalarlo por usuario actual
  • Averiguar que el directorio no tiene permisos para eliminar y corregir sus permisos, o mover manualmente al lado.
  • Relacionados: pip no se desinstala los paquetes fuera de sys.prefijo
InformationsquelleAutor Serjik | 2015-10-29

7 Comentarios

  1. 149

    Después de haber probado esta usando Python 3.5 y pip 7.1.2 en Linux, la situación parece ser este:

    • pip install --user somepackage instala a $HOME/.local, y desinstalar el que hace el trabajo, el uso de pip uninstall somepackage.

    • Esto es cierto si o no somepackage también está instalada en todo el sistema al mismo tiempo.

    • Si el paquete está instalado en ambos lugares, sólo el local va a ser desinstalado. Para desinstalar el paquete de todo el sistema utilizando pip, desinstalar primero a nivel local, a continuación, ejecutar el mismo comando de desinstalación de nuevo, con root privilegios.

    • Además el usuario predefinido directorio de instalación, pip install --target somedir somepackage va a instalar el paquete en somedir. No hay manera de desinstalar un paquete de un lugar utilizando pip. (Pero hay un poco de la vieja sin combinar pull request en Github que implementa pip uninstall --target.)

    • Ya que los únicos lugares pip nunca desinstalación de todo el sistema y de usuario predefinido local, usted necesita para ejecutar pip uninstall como el respectivo usuario desinstalar de un usuario local del directorio de instalación.

  2. 2

    La respuesta es No es posible sin embargo. Usted tiene que quitar manualmente.

    • lo que es necesario eliminar de forma manual?
    • Al instalar un paquete, hubo una rastreabilidad. Desinstalar nunca trabajó después de.
  3. 2

    Como @thomas-lotze ha mencionado, en la actualidad pip utillaje no hacer que, como no existe la correspondiente opción –user. Pero lo que me parece es que puedo comprobar en ~/.local/bin y buscar el pip específicas de#.# que a mí me parece que corresponde a la opción –user.

    En mi caso:

    [email protected]: ~/.l/bin$ pwd
    /home/antho/.local/bin
    [email protected]: ~/.l/bin$ ls pip*
    pip  pip2  pip2.7  pip3  pip3.5

    Y, a continuación, simplemente desinstalar con el pip específicas de la versión.

    • stackoverflow.com/a/11250821/14420 para ver la receta de baño de desinstalación, por ejemplo, ./pip2 freeze | grep -v "^-e" | xargs pip uninstall -y para todo, excepto los paquetes instalados en modo editable
  4. 1

    Tenga cuidado sin embargo, para los que el uso de 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, usted tiene que desactivar el actual entorno virtual, a continuación, utilizar la correspondiente python/pip ejecutable a la lista o desinstalar el sitio del usuario de los paquetes:

    (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 el actual de la conclusión es: --user no es válido dentro de una virtual env del pip, desde una ubicación de usuario en realidad no tiene sentido para un entorno virtual.

  5. 0

    Estoy corriendo Anaconda versión 4.3.22 y un python3.6.1 ambiente, y tuvieron este problema. Aquí está la historia y de la revisión:

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

    Hice esto en mi python3.6 medio ambiente y tiene 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.

    Siguiente, he intentado descargar python3.6 y poniendo la python3.dll en la carpeta y en diferentes carpetas. nada cambió.

    finalmente, esta arreglado:

    pip uninstall opencv-python

    (el otro conda-forge versión está instalado) Esta a la izquierda sólo la conda versión, y que trabaja en 3.6.

    >>>import cv2
    >>>

    de trabajo!

  6. -1

    Puede desinstalar todos los paquetes a la vez.

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

    Asegurarse de que solamente se ejecute en un virtualenv

Dejar respuesta

Please enter your comment!
Please enter your name here