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.