pip install --user로 설치된 패키지를 제거하는 방법


219

--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]

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


1
아니요, 사용자 당 하나의 virtualenv : group을 설정하고이를 포함하는 폴더에 적절한 시스템 권한을 부여해야합니다.
danius

3
모든 사용자에 대해 시스템 전체에 패키지를 설치 한 다음 일부 사용자에 대해 선택적으로 제거 할 수있는 방법이 없습니다. 패키지가 설치된 경우 --user제거하지 않고 --user원하는 작업을 수행합니다.
tripleee

@tripleee : 권한 시스템이 넓지 않고 원하지 않습니다. 현재 사용자별로 제거해야합니다.
Serjik

1
제거 할 권한이없는 디렉토리를 찾아서 권한을 수정하거나 수동으로 한쪽으로 이동하십시오.
tripleee

답변:


196

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지정된 사용자의 로컬 설치 디렉토리에서 설치 제거하려면 해당 사용자로 실행해야합니다 .


2
가상 환경 내에서 pip를 실행하는 데이 문장이 정확합니까?
kbolino

필자의 경우 pip 9.0.1 패키지에서 제거가 작동하지 않습니다. HOME /./ local에 설치되어 있습니다.
Genom

2
포인트 2는 내 시스템에서 사실이 아닌 것 같습니다. 에 시스템 패키지가 jedi설치되어 /usr/lib64/python2.7/site-packages/있습니다. 내가 할 때, 일반 사용자로서 : pip install --user jedi 그리고 pip uninstall jedipip는 제거하려고 시도하고 /usr/lib64/python2.7/site-packages/jedi시작합니다 Permission denied. 경우에 따라서 --user제거 명령에 존재하지 않는, 어떻게 제거 말 할 수 없는 제거하려고 /usr/lib64/python2.7/site-packages/jedi그러나 ~/.local/lib64/python3.6/site-packages/jedi?
AstroFloyd 2014

@AstroFloyd와 정확히 동일
Nikana Reklawyks


9

그러나 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하지 않습니다. 사용자 위치는 실제로 가상 환경에 적합하지 않기 때문입니다.


3
너무 늦었!, 내가 사용 --user하기 때문에 가상 ENV 내부에, 그것을 되돌릴 수있는 방법은?이 pip list작동하지 않음 ....
jnfran92

2
'그리고 현재 결론은 다음과 같습니다.-사용자는 가상 환경에 적합하지 않기 때문에 가상 환경의 핍 내에서 유효하지 않습니다.' 동의했다. 사용자 설치는 가상 환경의 전체 목적을 무너 뜨립니다. 불행히도 사람들이 이것을하는 나쁜 사례가 많이 있습니다.
Stephen Bosch

5

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

pip freeze --user | xargs pip uninstall -y

파이썬 3의 경우;

pip3 freeze --user | xargs pip3 uninstall -y

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

pip uninstall setuptools && pip uninstall pip


2
이것은 나에게 잘 맞는 우아한 솔루션입니다.
Stephen Bosch

2

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


패키지를 설치하는 동안 역 추적이있었습니다. 그 후에는 제거가 작동하지 않았습니다.
syam

주어진 패키지에 설치된 모든 pip 파일을 어떻게 나열합니까?
AstroFloyd

pip는 외부 코드를 실행하는 setup.py를 실행하기 때문에 사실상 불가능합니다. setup.py가 완전히 제거 될 때까지 아마도 2022 년까지 잊어 버릴 것입니다.
sorin

2

@ 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 버전으로 제거하십시오.


stackoverflow.com/a/11250821/14420는 예를 들어 목욕 설치 제거를위한 조리법 볼 ./pip2 freeze | grep -v "^-e" | xargs pip uninstall -y편집 모드로 설치 패키지를 제외한 모든 위해를
매트 윌키

0

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

일!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.