[python] pip install –user로 설치된 패키지를 제거하는 방법

--user사용자 당 파이썬 패키지를 설치할 수 있습니다 핍에 대한 옵션 :

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

이 옵션을 사용하여 루트 액세스 권한이없는 서버에 패키지를 설치했습니다. 지금 필요한 것은 현재 사용자에서 설치된 패키지를 제거하는 것입니다. 이 명령을 실행하려고했습니다.

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

그러나 나는 얻었다 :

no such option: --user

패키지를 pip install --user수동으로 찾아 삭제하는 것 외에 와 함께 설치된 패키지를 제거하려면 어떻게 해야합니까?

이 기사를 찾았습니다

pip는 사용자 별 사이트 패키지 디렉토리에서 제거 할 수 없습니다

사용자 디렉토리에서 패키지를 제거하는 것은 지원되지 않습니다. 기사에 따르면 올바르게 구현 된 경우

pip uninstall [package-name]

설치된 패키지는 사용자 디렉토리에서도 검색됩니다. 그러나 여전히 문제가 남아 있습니다. 시스템 전체와 사용자별로 동일한 패키지가 설치된 경우 어떻게됩니까? 누군가 특정 사용자 디렉토리를 대상으로해야하는 경우 어떻게해야합니까?



답변

Linux에서 Python 3.5 및 pip 7.1.2를 사용하여 이것을 테스트 한 상황은 다음과 같습니다.

  • pip install --user somepackage에 설치 $HOME/.local하고 제거하면 작동합니다 pip uninstall somepackage.

  • somepackage시스템 전체에 동시에 설치되어 있는지 여부에 관계없이 적용됩니다.

  • 패키지가 두 위치에 모두 설치되어 있으면 로컬 패키지 만 제거됩니다. 을 사용하여 시스템 전체에서 패키지를 제거하려면 pip먼저 로컬로 패키지를 제거한 다음 root권한으로 동일한 제거 명령을 다시 실행하십시오 .

  • 사전 정의 된 사용자 설치 디렉토리 외에도 pip install --target somedir somepackage패키지를에 설치합니다 somedir. 를 사용하여 이러한 위치에서 패키지를 제거 할 방법이 없습니다 pip. (그러나 Github에는을 구현하는 다소 오래된 병합되지 않은 풀 요청이 있습니다 pip uninstall --target.)

  • pip시스템 전체에서 사전 정의 된 사용자 로컬 위치 만 제거 할 수 있으므로 pip uninstall지정된 사용자의 로컬 설치 디렉토리에서 설치 제거하려면 해당 사용자로 실행해야합니다 .


답변

MacOS에서 ‘oauth2client’패키지를 제거하는 예 :

pip uninstall oauth2client


답변

그러나 pip install --user some_pkg 가상 환경 내부에서 사용하는 사람들에게는주의하십시오 .

$ 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

이 경우 현재 가상 환경비활성화 한 다음 해당 python/ pip실행 파일을 사용하여 사용자 사이트 패키지를 나열하거나 제거해야합니다.

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

이 문제 는 몇 년 전에보고되었습니다 . 그리고 현재 결론--user가상 환경에서 유효 pip하지 않습니다. 사용자 위치는 실제로 가상 환경에 적합하지 않기 때문입니다.


답변

--user플래그로 설치된 패키지를 제거 할 수 있다고 생각합니다 . 이것은 나를 위해 일했습니다.

pip freeze --user | xargs pip uninstall -y

파이썬 3의 경우;

pip3 freeze --user | xargs pip3 uninstall -y

그러나 어떻게 든이 명령은 setuptools 및 pip를 제거하지 않습니다. 그 명령 후에 (정말 파이썬을 원한다면) 명령을 삭제할 수 있습니다.

pip uninstall setuptools && pip uninstall pip


답변

대답은 아직 불가능합니다 . 수동으로 제거해야합니다.


답변

@ thomas-lotze가 언급했듯이 현재 pip 툴링은 해당하는 –user 옵션이 없으므로 그렇게하지 않습니다. 그러나 내가 찾은 것은 ~ / .local / bin을 체크인하고 –user 옵션에 해당하는 것처럼 보이는 특정 pip #. #을 찾을 수 있다는 것입니다.

나의 경우에는:

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

그런 다음 특정 pip 버전으로 제거하십시오.


답변

Anaconda 버전 4.3.22 및 python3.6.1 환경을 실행 중이며이 문제가 발생했습니다. 역사와 수정 사항은 다음과 같습니다.

pip uninstall opencv-python # -- the original step. failed.

ImportError: DLL load failed: The specified module could not be found.

python3.6 환경 에서이 작업을 수행 하고이 오류가 발생했습니다.

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.

다음으로 python3.6을 다운로드하고 python3.dll을 폴더와 다양한 폴더에 넣었습니다. 아무것도 바뀌지 않았다.

마침내, 이것은 그것을 고쳤다 :

pip uninstall opencv-python

(다른 conda-forge 버전은 여전히 ​​설치되어 있습니다.) 이것은 conda 버전 만 남았으며 3.6에서 작동합니다.

>>>import cv2
>>>

일!