Python의 easy_install로 설치된 패키지를 어떻게 제거합니까?


704

파이썬 easy_install은 새로운 패키지 설치를 매우 편리하게 만듭니다. 그러나 내가 알 수있는 한, 종속성 관리자의 다른 일반적인 기능-설치된 패키지 나열 및 제거를 구현하지 않습니다.

설치된 것을 찾는 가장 좋은 방법은 무엇이며 설치된 패키지를 제거하는 가장 좋은 방법은 무엇입니까? 패키지를 수동으로 제거 할 때 (예를 들어 rm /usr/local/lib/python2.6/dist-packages/my_installed_pkg.egg또는 이와 유사한) 업데이트해야하는 파일이 있습니까?


67
이 게시물은 내가이 의견을 쓸 당시 거의 2 살입니다. pip는 이제 easy_install을 효과적으로 대체하며 후자가 설치 한 패키지 (계란 포함)를 적절하고 깨끗하게 제거 할 수 있습니다. 스레드를 추가로 제안하는 답변을 올리십시오.
Michael Ekoka

53
라는 것이 있다는 모순 "easy_install을"은 하지 않습니다 - 하십시오 상대가 easy_uninstall없고 B : (가)에 하나 그렇게 할 수있는 방법을 언급하는 성가 시게 --help- 내 마음을 주춤 거린다는 / 내 마음을 슬프게 / 내 영혼을 _infuriates .
Alex Gray

13
@ pip를 제거하려고하면 어떻게됩니까? (:
mccc

답변:


621

setuptools / easy_install의 대안 인 pip 는 "uninstall"명령을 제공합니다.

설치 지침 에 따라 pip를 설치하십시오 .

$ wget https://bootstrap.pypa.io/get-pip.py
$ python get-pip.py

그런 다음 pip uninstall설치된 패키지를 제거 하는 데 사용할 수 있습니다easy_install


25
pip로 모듈을 제거하는 데 문제가있는 경우 pip 설치 자체가 최신인지 확인하십시오. pip install -U pip # 대문자 U
Michael Ekoka

4
pip는 easy_install 설치 패키지를 제거하기 위해 일했습니다. 그래도 패키지의 모든 버전을 제거하려면 'pip uninstall <package>'을 여러 번 실행해야했습니다. 따라서 명심하십시오. 심지어 '개발'설치 패키지를 제거했는데 결과적으로 엉망이었습니다.
DragonFax

2
그러나 비활성 패키지를 삭제하는 방법
CrazyGeek

7
easy_install을 사용하여 easy_install 설치를 제거하기 위해 pip를 설치했습니다.

2
대답은 "install pip"라고 말하지만 실제로 pip는 최신 Python과 함께 제공되는 것 같습니다 .
Edward

188

설치 제거하기 위해 .egg당신이 필요로 rm -rf계란을 (그것은 디렉토리 수 있음)과에서 일치하는 줄을 제거site-packages/easy-install.pth


18
최신 pip패키지 관리자에는 제거 기능이 포함되어 있습니다.
joeforker

pip는 소스에서 설치하기 때문에 pip를 제거한 다음 제거하는 것이 좋습니다. 당신이 나 같은 새로운 Win7에 64 비트가있는 경우, 그것은 당신의 일 :) 저장됩니다
daitangio

6
일부 사용에는 제거 옵션이없는 이전 버전의 pip가 붙어 있으므로이 답변은 여전히 ​​가치가 있습니다.
Mark Pitchless

5
이 방법은 처진 떠날 수 있음을 언급 아마 가치 data_filesscripts시스템 (및 다른 파일 범주). 계란 EGG-INFO/SOURCES.txt은 모든 package파일 의 목록을 포함하고 sources있지만 data_files시스템의 임의의 디렉토리에 설치할 수는 없습니다 ...
Alex Leach

pip는 easy_install이 설치하는 모든 것을 항상 제거하지는 않습니다. pip가 내 모듈 중 하나를 제거 할 수없는 곳에서 일어난 작은 경험 이 있습니다. site-packages / easy-install.pth에서 일치하는 줄을 제거하여 완전히 제거해야했습니다.
ychaouche

158

먼저이 명령을 실행해야합니다.

$ easy_install -m [PACKAGE]

패키지의 모든 종속성을 제거합니다.

그런 다음 해당 패키지의 달걀 파일을 제거하십시오.

$ sudo rm -rf /usr/local/lib/python2.X/site-packages/[PACKAGE].egg

1
더 많은 문서보기 : peak.telecommunity.com/DevCenter/…
GiDo

-m내가 말할 수있는 한 아무것도 제거하는 적절한 easy_install 명령이 아니지만이 답변은 다른 답변이하지 않는 easy_install 패키지의 중요한 위치를 제공합니다. rm -rf /usr/local/lib/python*주사위를 설치하기 전에를 갈 수있는 방법은 나에게 보인다입니다
fuzzyTew

55

모든 정보는 다른 답변에 있지만 아무도 요약되지 모두 귀하의 요청을하거나 일을 불필요하게 복잡 할 것 같다 :

  • 제거가 필요한 경우 :

    pip uninstall <package>

    (를 사용하여 설치 easy_install pip)

  • '설치된 패키지 목록'의 경우 다음 중 하나를 사용하십시오.

    pip freeze

    또는:

    yolk -l

    더 많은 패키지 세부 정보를 출력 할 수 있습니다.

    (통해 설치 easy_install yolk또는 pip install yolk)


을 실행 한 후 yolk -l"scipy -0.11.0-비활성 개발"및 "scipy -0.14.0 ...-활성 개발"과 같은 중복 패키지가 있음을 알 수 있습니다. 이러한 비활성 개발 패키지를 어떻게 제거 할 수 있습니까?
bobbyjoe93

2
easy_install에 의해 설치된 pip를 제거하려는 것을 제외하고는 좋습니다. 잘못된 Python 버전으로 설치했기 때문입니다.
Nagev

28

-m 옵션을 사용하여 패키지를 다시 설치 한 다음 lib /에서 .egg 파일을 제거하고 bin /에서 이진 파일을 제거하여 해킹을 제안하는 소스 가 몇 가지 있습니다. 또한이 setuptools 문제에 대한 토론은 python bug tracker에서 setuptools issue 21 로 찾을 수 있습니다 .

편집 : python bugtracker에 대한 링크가 추가되었습니다.


2
이 정보에 감사드립니다. 다른 사람의 참고를 위해 다음은 언급 한 문제에 대한 링크입니다. bugs.python.org/setuptools/issue21
ire_and_curses

25

문제가 당신에게 심각한 성가신 경우 virtualenv 고려할 수 있습니다 . 파이썬 라이브러리를 캡슐화하는 환경을 만들 수 있습니다. 글로벌 사이트 패키지 디렉토리가 아닌 패키지를 설치합니다. 해당 환경에서 실행하는 모든 스크립트는 해당 패키지 (및 선택적으로 전역 스크립트)에 액세스 할 수 있습니다. 전 세계적으로 설치할지 확실하지 않은 패키지를 평가할 때 이것을 많이 사용합니다. 패키지가 필요하지 않다고 판단되면 가상 환경을 날려 버릴 수 있습니다. 사용하기 매우 쉽습니다. 새로운 환경을 조성하십시오 :

$>virtualenv /path/to/your/new/ENV

virtual_envt는 새 환경에 setuptools를 설치하므로 다음을 수행 할 수 있습니다.

$>ENV/bin/easy_install

새 환경을 설정하는 자체 부 스트랩 스크립트를 만들 수도 있습니다. 따라서 하나의 명령으로 기본적으로 python 2.6, psycopg2 및 django가 설치된 새 가상 환경을 만들 수 있습니다 (원하는 경우 환경에 맞는 python 버전을 설치할 수 있음).


$>는 무엇입니까? 그게 프롬프트 야? 아마도 $로 수정하는 것이 더 도움이 될까요? 감사합니다
Grey

18

공식 (?) 지침 : http://peak.telecommunity.com/DevCenter/EasyInstall#uninstalling-packages

패키지를 다른 버전으로 교체 한 경우 PackageName-versioninfo.egg 파일 또는 디렉토리 (설치 디렉토리에 있음)를 삭제하여 필요없는 패키지를 삭제할 수 있습니다.

현재 설치된 버전의 패키지 (또는 모든 버전의 패키지)를 삭제하려면 먼저 다음을 실행해야합니다.

easy_install -mxN PackageName

이를 통해 Python은 제거 할 패키지를 계속 검색하지 않습니다. 이 작업을 수행 한 후에는 제거하려는 스크립트와 함께 .egg 파일 또는 디렉토리를 안전하게 삭제할 수 있습니다.


결코 변하지 않는 것 같습니다! PIP는 TRAC 핵 플러그인 (trac admin) 설치를 거부했으며 easy_install 만 작동합니다. 그러나 실수로 이전 버전을 설치했습니다. 그리고 easy_install은 프로젝트의 https URL에서 수정할 수 없었습니다. 그래서 PIP를 사용하여 제거했지만 TRAC를 다시 설치하면 플러그인이 표시되지 않습니다. 그래서 여기에있는 정보를 사용하여 pkg를 분리하고 수동으로 삭제 한 다음 다시 설치하십시오. 아휴. (python 2.7)
Richard Cooke


7

설치된 Python 패키지를 나열하려면을 사용할 수 있습니다 yolk -l. easy_install yolk그래도 먼저 사용해야 합니다.


6

시간이 지남에 따라 설치된 많은 임의의 Python 패키지를 제거하려고 시도 하면서이 질문을 겪었습니다.

이 스레드의 정보를 사용하여 이것이 내가 생각해 낸 것입니다.

cat package_list | xargs -n1 sudo pip uninstall -y

package_listA로부터 (AWK) 정리한다pip freeze VIRTUALENV에.

거의 모든 Python 패키지 를 제거하려면

yolk -l | cut -f 1 -d " " | grep -v "setuptools|pip|ETC.." | xargs -n1 pip uninstall -y

<package_list xargs -n1 sudo pip uninstall -yUUOC를 피하십시오!
Heini Høgnason 2013

3

MacOS X Leopard 10.6.blah에서 동일한 문제가 발생했습니다.

해결책은 MacPorts Python을 호출하는지 확인하는 것입니다.

sudo port install python26
sudo port install python_select
sudo python_select python26
sudo port install py26-mysql

도움이 되었기를 바랍니다.


1
그러나 MacPorts에서 Mac의 Brew, 네이티브 파이썬 2.7로 완전히 전환했습니다. setup_tools를 통해 설치된 MySQLdb
Cmag

3

나를 위해이 파일을 삭제하는 것만 : easy-install.pth 작동, 나머지 pip install django == 1.3.7


1

이것은 나를 위해 일했습니다. 이전 답변과 비슷하지만 패키지 경로는 다릅니다.

  1. sudo easy_install -m
  2. sudo rm -rf / 라이브러리 /Python/2.7/site-packages/.egg

플랫폼 : MacOS High Sierra 버전 10.13.3


1
첫 번째 명령으로이 오류가 발생합니다.error: No urls, filenames, or requirements specified (see --help)
Michael
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.