pip로 편집 가능한 패키지를 제거하는 방법 (-e로 설치됨)


107

-e로 일부 패키지를 설치했습니다.

> pip install -e git+https://github.com/eventray/horus.git@2ce62c802ef5237be1c6b1a91dbf115ec284a619#egg=horus-dev

나는 핍 동결과 함께

> pip freeze
...
-e git+https://github.com/eventray/horus.git@2ce62c802ef5237be1c6b1a91dbf115ec284a619#egg=horus-dev
...

패키지를 제거하려고하면 오류가 발생합니다.

> pip uninstall horus-dev
Cannot uninstall requirement horus-dev, not installed

> pip uninstall horus
Cannot uninstall requirement horus, not installed

이러한 패키지를 제거하려면 어떻게합니까?


pip uninstall <package>는 최신 버전의 pip에서 편집 가능 모드로 설치된 패키지를 제거합니다 (내는 19.1.1 임). entry_points에서 해당 패키지를 호출하기 위해 지정한 별칭이 아닌 setup.py의 패키지 이름을 사용해야합니다
picmate 涅

conda를 사용하는 사람들을 위해 conda에서 dev 모드로 제거하려면 :conda develop -u .
Charlie Parker

pip uninstall yourpackage작동하지 않는지 알아 냈습니까 ? 당신의 오류는 무엇을 의미합니까? 명령에서 이상한 출력이 보입니다 ...
Charlie Parker

pip uninstall -e .또는 시도 했습니까 python setup.py develop -u?
Charlie Parker

2
나를 pip uninstall library위해 잘 작동했습니다. 대답에 가면 OP가 제공하는 경우 그의 라이브러리가 손상된 것 같습니다. 바라건대 사람들이 다음에 올 때 시간을 절약 할 수 있기를 바랍니다. 하지만 작동 할 수있는 다양한 옵션이 있습니다.
Charlie Parker

답변:


90

At {virtualenv}/lib/python2.7/site-packages/(virtualenv를 사용하지 않는 경우 {system_dir}/lib/python2.7/dist-packages/)

  • 계란 파일 (예를 제거 distribute-0.6.34-py2.7.egg어떤이있는 경우)
  • 파일 easy-install.pth에서 해당 줄을 제거합니다 (소스 디렉토리 또는 egg 파일의 경로 여야 함).

43
놀랍게도 해당하는 제거 방법이 없습니다.
Drake Guan

4
@Drake 예, 실제로 꽤 성가신
glarrain

4
현재 pip 버전에서는 -e옵션으로 설치된 패키지에서도 제거가 정상적으로 작동 합니다.
famousgarkin 2014

9
8.1.2를 사용하는 나를 위해 pip uninstall package_name작동하지만 작동 pip uninstall .하지 않습니다
confused00

5
편집 가능한 설치 패키지를 제거 할 수있는 기능 에 대한 pip 대한 공개 문제가 있습니다 .
Chris Hunt

22

새 버전의 setup_tools로 동일한 작업을 더 쉽게 수행하는 방법은 다음을 실행하는 것입니다.

python setup.py develop -u

기본적으로 @glarrain이 그의 답변에서 설명하는 것과 동일합니다.


2
해당 명령에 대한 출력이 있어야합니까? 나는 그것이 말하지만 running develop여전히 .egg-info파일을 ... 제거해야합니까?
피노키오

이 답변이 작동하는 "새 버전의 setup_tools"는 무엇입니까? 이것을 확인해 주시겠습니까?
Charlie Parker

당신의 대답은 씬을 수동으로 제거 할 필요가 없다는 것을 보장합니까?
Charlie Parker

출력을 생성하지 않습니다. 내 이해에 따르면 제거해야합니다. "--uninstall, -u 현재 프로젝트를 배포 해제합니다. --install-dir 또는 -d 옵션을 사용하여 준비 영역을 지정할 수 있습니다. 생성 된 .egg-link 파일은 있는 경우 제거되고 여전히 프로젝트 디렉토리를 가리키고 있습니다. " 에서 setuptools에 워드 프로세서 . 이것을 실행 한 후에도 여전히 개발 디렉토리에서 콘텐츠를로드합니까?
Ahmed Shariff

@CharlieParker 이것이 어떤 버전에 도입되었는지 잘 모르겠습니다. 이러한 파일을 수동으로 제거 할 필요가 없었습니다.
Ahmed Shariff

10

cmd를 사용하여 dev 패키지를 설치하십시오.

pip install --editable .

제거:

rm -r $(find . -name '*.egg-info')

이제 다음을 사용할 수 있습니다.

pip uninstall package_name 

또는 python setup.py develop --uninstall또는python setup.py develop -u


4
두 번째 명령을 어디에서 실행할지 지정할 수 있습니까?
ethanabrooks

1
@ethanabrooks .는 현재 디렉터리이며 패키지의 전체 절대 경로를 사용합니다.
Legolas Bloom

1
불완전한. 모든 Python 패키지는 어떻습니까? ( site-packagesdir)
Jorge Orpinel 19-06-01

이것은 설치를 완전히 취소하지 않습니다. 패키지가 설치된 폴더에서 항목을 삭제하지만 dist-packages디렉토리 (Python이 설치된 패키지를 찾는 위치) 의 심볼릭 링크는 삭제하지 않습니다 . 사용하는 클리너 python setup.py develop -u.
Mark Amery

@MarkAmery 감사합니다, pip uninstall package_name지금 일하십시오.
Legolas Bloom

6

이것은 OS가 설치된 pip (저의 경우 v8.1.1)를 사용하는 debian / ubuntu linux의 버그로, sudo pippip (예 : get-pip.py)를 업그레이드 한 경우에도 호출됩니다 . 참조 https://github.com/pypa/pip/issues/4438를

정리 방법에 대한 토론은 /ubuntu/173323/how-do-i-detect-and-remove-python-packages-installed-via-pip 를 참조 하십시오 . "모두 제거"다양성.

... pip 패키지 [이동] to /usr/local/lib/python2.7/dist-packages, apt 패키지 to/usr/lib/python2.7/dist-packages

... 몇 개의 패키지도 설치되었습니다 ~/.local/lib.

내 시스템에서 제거해야하는 것은 /usr/local/lib/python2.7/dist-packages/{package_name}.egg-link


나를 pip uninstall library위해 잘 작동했습니다. 대답에 가면 OP가 제공하는 경우 그의 라이브러리가 손상된 것 같습니다. 바라건대 사람들이 다음에 올 때 시간을 절약 할 수 있기를 바랍니다. 비록, 여러 가지 옵션이 있습니다 그 힘 일
찰리 파커 (Charlie Parker)

5

내 설치가 어떻게 든 손상된 것으로 밝혀졌습니다.

다음에서 항목을 찾을 수 있습니다.

/usr/local/lib/python2.7/site-packages/easy-install.pth

문제를 해결하기 위해 .pth 파일의 줄을 손으로 제거했습니다!

import sys; sys.__plen = len(sys.path)
...
/absolute-path-to/horus  # <- I removed this line
...

1
설치가 손상되었다는 것은 무엇을 의미합니까?
Charlie Parker

-1

'편집 가능'모드로 설치 한 패키지를 제거하기 만하면됩니다.

pip uninstall yourpackage

9
OP는 이것을 시도했고 그의 질문에서 그렇게 말합니다. 이것은 '편집 가능'으로 설치된 패키지에서 반드시 작동하는 것은 아닙니다
dusktreader

2
@dusktreader : OP의 pip uninstall명령 (아마도 오래된 버전의 pip?)으로 무슨 일이 벌어지고 있는지 잘 모르겠지만 정상적인 상황에서 @glarrain이 수락 한 답변에서 수동으로 수행하도록 제안 된 작업을 정확히 수행하는지 확인했습니다. 문제가 해결되지 않는 경우 문제를 더 자세히 조사 할 수 있도록 여기서 수행중인 작업을 자세히 설명해주세요.
Apteryx

@Apteryx는 편집 가능 모드에서도 작동한다는 말입니까?
Charlie Parker

이 대답은 저에게 효과적이었습니다. 그의 대답을 확인하면 이상한 설치가 있었거나 그의 컴퓨터가 이상한 상태에 있었기 때문에 OP에서는 작동하지 않았다고 생각합니다. pip uninstall pkgafaik 작동합니다.
Charlie Parker
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.