에 python 패키지를 설치했습니다 python setup.py install
.
제거하려면 어떻게합니까?
It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
되므로 여전히 문제입니다.
에 python 패키지를 설치했습니다 python setup.py install
.
제거하려면 어떻게합니까?
It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
되므로 여전히 문제입니다.
답변:
참고 : 사용하지 마십시오 python setup.py install
사용pip install .
모든 파일을 수동으로 제거하고 설치에서 수동으로 수행 한 다른 작업을 실행 취소해야합니다.
모든 파일 목록을 모르는 경우 --record
옵션을 사용하여 다시 설치하고 생성 된 목록을 살펴볼 수 있습니다.
설치된 파일 목록을 기록하려면 다음을 사용하십시오.
python setup.py install --record files.txt
설치 제거를 원하면 xargs를 사용하여 제거를 수행 할 수 있습니다.
xargs rm -rf < files.txt
또는 Windows를 실행중인 경우 Powershell을 사용하십시오.
Get-Content files.txt | ForEach-Object {Remove-Item $_ -Recurse -Force}
그런 다음 포함 디렉토리도 삭제하십시오 (예 : /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/my_module-0.1.egg/
on) macOS
. 파일이 없지만 파이썬은 여전히 빈 모듈을 가져옵니다.
>>> import my_module
>>> my_module.__file__
None
일단 삭제되면 파이썬은 다음을 보여줍니다.
>>> import my_module
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'my_module'
cat files.txt | xargs sudo rm -rf
나를 위해 다음이 대부분 작동합니다.
핍을 설치하십시오. 예 :
$ easy_install pip
설치된 패키지의 이름이 pip 관점에서 어떻게 지정되어 있는지 확인하십시오.
$ pip freeze
여기에는 설치 한 모든 패키지의 이름이 표시되고 pip에서 감지 한 패키지가 표시됩니다. 이름은 언젠가는 길고 이후에 표시되는 패키지 이름 만 사용하십시오 #egg=
. 대부분의 경우 버전 부분 ( ==
또는 뒤에 오는 것)을 무시할 수도 있습니다 -
.
그런 다음 패키지를 제거하십시오.
$ pip uninstall package.name.you.have.found
패키지 제거에 대한 확인을 요청하면 운이 좋은 사람이며 제거됩니다.
pip는 pip에 의해 설치된 모든 패키지를 감지합니다. 또한 easy_install 또는 setup.py를 통해 설치된 대부분의 패키지를 감지해야하지만 드물게 실패 할 수 있습니다.
다음은 ttr.rdstmc
MS Windows에서 이름이 지정된 패키지를 사용한 로컬 테스트의 실제 샘플입니다 .
$ pip freeze |grep ttr
ttr.aws.s3==0.1.1dev
ttr.aws.utils.s3==0.3.0
ttr.utcutils==0.1.1dev
$ python setup.py develop
.....
.....
Finished processing dependencies for ttr.rdstmc==0.0.1dev
$ pip freeze |grep ttr
ttr.aws.s3==0.1.1dev
ttr.aws.utils.s3==0.3.0
-e hg+https://vlcinsky@bitbucket.org/vlcinsky/ttr.rdstmc@d61a9922920c508862602f7f39e496f7b99315f0#egg=ttr.rdstmc-dev
ttr.utcutils==0.1.1dev
$ pip uninstall ttr.rdstmc
Uninstalling ttr.rdstmc:
c:\python27\lib\site-packages\ttr.rdstmc.egg-link
Proceed (y/n)? y
Successfully uninstalled ttr.rdstmc
$ pip freeze |grep ttr
ttr.aws.s3==0.1.1dev
ttr.aws.utils.s3==0.3.0
ttr.utcutils==0.1.1dev
위에 쓰여진 모든 내용이 여전히 적용됩니다. 어쨌든 지금은 약간의 수정이 가능합니다.
최신 Python 버전에는 ensurepip
오프라인 상태에서도 pip를 설치할 수 있는 패키지 가 제공됩니다.
$ python -m ensurepip-업그레이드
데비안 제시와 같은 일부 시스템에서는 시스템 파이썬 설치가 중단되는 것을 막기 위해 사용할 수 없습니다.
grep
또는 사용find
위의 예에서는 grep
설치 한 것으로 가정합니다 . (내 컴퓨터에 MS Windows가있을 때) Linux 유틸리티 세트 (grep 포함)를 설치했습니다. 또는 기본 MS Windows를 사용 find
하거나 해당 필터링을 무시하고 감지 된 Python 패키지의 더 긴 목록에서 이름을 찾으십시오.
distutils
, distribute
등 ...)
setuptools
합니다. bitbucket.org/vlcinsky/ttr.aws.utils.s3 (완벽하지는 않음)을 확인할 수 있습니다 . 어쨌든, 네임 스페이스 패키지를 사용하는 것에 상당히 만족하지 못합니다. 때로는 가져 오기가 눈에 띄는 이유없이 깨졌습니다. 그러나 또 다른 이야기입니다.
setuptools
실제로 사용 distribute
합니다. 또 다른 교훈 : pypi에서 내 자신의 패키지를 설치하고 동일한 네임 스페이스를 로컬로 공유하는 다른 패키지를 개발하려고 할 때 사용 하지 말고 $ pip install <the package>
사용하십시오 $ easy_install <the package>
. 그렇지 않으면 개발 패키지를 가져올 때 충돌이 발생합니다.
easy_install --user --prefix=$HOME pip
있습니다. 그럼 난 내 PATH에 다음을 추가 : ln -s /home/tflutre/.local/bin/pip ~/bin
, ln -s /home/tflutre/.local/bin/pip2.7 ~/bin
및 ln -s /home/tflutre/.local/bin/pip2 ~/bin
.
pip uninstall module
하거나 python -m pip uninstall module
작동해야합니다. 또한 파이썬의 일부인 크로스 플랫폼이어야합니다.
# 1 답변에는 문제가 있습니다 :
xargs
명령이 실패하고 개별 단어와 일치하는 모든 파일 / 디렉토리가 삭제됩니다.-r
인은 rm -rf
당신이 원하지 않는 일을 삭제할 수 있습니다 불필요하고 최악이다.대신 유닉스 계열의 경우 :
sudo python setup.py install --record files.txt
# inspect files.txt to make sure it looks ok. Then:
tr '\n' '\0' < files.txt | xargs -0 sudo rm -f --
그리고 창문의 경우 :
python setup.py bdist_wininst
dist/foo-1.0.win32.exe
setup.py
설치 제거와 관련하여 해결할 수없는 문제가 있어서 일반적인 경우에는 방해가되지 않습니다. 더 완전한 대답을 보려면 다음 위키 페이지를 참조하십시오.
OIFS=$IFS; IFS=$'\n'; FILES=( $( cat files.txt ) ); IFS=$OIFS; sudo rm -rf "${FILES[@]}"
printf
문자열에 예를 들어 %
또는 \
문자 가 포함 된 경우의 형식 문자열에 변수를 포함 시키지 못합니다 . 항상 형식 문자열을 제공하십시오 printf '%s\0' "$line"
(반향을 피하십시오). tr '\n' '\0' < files.txt | xargs -0 rm -f
먼저 설치 한 파일을 기록하십시오. 이전에 실행 한 경우에도이 명령을 반복 할 수 있습니다 setup.py install
.
python setup.py install --record files.txt
제거하려는 경우 다음을 수행 할 수 있습니다.
sudo rm $(cat files.txt)
rm 명령은 공백으로 구분 된 파일 목록을 삭제하고 설치 레코드가 그러한 목록이기 때문에 작동합니다.
이제 python은 설치 pip
중에 설치할 수있는 옵션을 제공 합니다 (Windows에는 있고 최소한 Windows에는 python이 있습니다!). pip
파이썬 설치 중에 설치 하기로 선택한 것을 고려하면 (실제로 기본값을 선택할 필요는 없습니다) pip
이미 설치되어 있습니다. 그런 다음 pip
명령 프롬프트에 입력 하면 도움말이 나타납니다. 필요한 사용법 지침을 찾을 수 있습니다. 예를 들어 pip list
설치된 패키지 목록이 표시됩니다. 당신이 사용할 수있는
pip uninstall package_name
더 이상 원하지 않는 패키지를 제거합니다. 자세한 내용은 여기 (pip documentation)를 참조 하십시오 .
게으른 방법 : 배포 패키지를 만든 후 먼저 다시 설치하면 Windows 설치 메뉴 (Windows를 사용하는 경우) 또는 rpm 명령에서 간단히 제거하십시오.
예를 들어
python setup.py bdist_wininst
dist/foo-1.0.win32.exe
( "foo"는 물론 예입니다).
python 패키지 디렉토리로 이동하여 .egg 파일을 제거하십시오 (예 : python 2.5 (ubuntu) : /usr/lib/python2.5/site-packages/
파이썬 2.6 (우분투) : /usr/local/lib/python2.6/dist-packages/
아마 당신은 대안으로 이것을 할 수 있습니다 :-
1) 파이썬 버전을 얻으십시오-
[linux machine]# python
Python 2.4.3 (#1, Jun 18 2012, 14:38:55)
-> 위 명령은 현재 파이썬 버전 인 2.4.3을 제공합니다.
2) 파이썬의 설치 디렉토리를 얻으십시오-
[linux machine]# whereis python
python: /usr/bin/python /usr/bin/python2.4 /usr/lib/python2.4 /usr/local/bin/python2.5 /usr/include/python2.4 /usr/share/man/man1/python.1.gz
-> 위 명령에서 설치 디렉토리를 얻을 수 있습니다-/ usr / lib / python2.4 / site - packages
3) 여기에서 패키지와 python egg 파일을 제거 할 수 있습니다
[linux machine]# cd /usr/lib/python2.4/site-packages
[linux machine]# rm -rf paramiko-1.12.0-py2.4.egg paramiko-1.7.7.1-py2.4.egg paramiko-1.9.0-py2.4.egg
이것은 나를 위해 일했다.
setup.py를 열고 패키지 이름을 찾은 다음 pip에게 제거를 요청할 수 있다고 생각합니다.
이름이 'METADATA'변수에서 사용 가능하다고 가정하십시오.
pip uninstall $(python -c "from setup import METADATA; print METADATA['name']")
패키지를 다시 설치 한 후에 삭제해야 할 파일이 여전히 있으면 폴더 build
도 삭제 해야합니다 . 따라서 pkg
삭제하려는 패키지 라고 가정합니다 .
rm -r $(python3 -c "import pkg; print(pkg.__path__[0] + '*' )")
rm -rf build
python3을 해결하고 패키지와 * .egg-info 파일을 삭제하십시오.
글로벌 환경에서 실수로 과거 어느 시점에서 "python setup.py install"을 실행했으며 제거에 많은 어려움이있었습니다. 이러한 솔루션은 도움이되지 않았습니다. "pip uninstall"이 (가) " 'splunk-appinspect'를 제거 할 수 없습니다. 제거 할 파일이 없습니다." "sudo pip uninstall"이 작동하지 않습니다. "요구 된 splunk-appinspect를 제거 할 수 없습니다. 설치되지 않았습니다." pip 제거, pip 캐시 삭제, 패키지에 대한 하드 드라이브 검색 등을 시도했습니다.
"pip show"는 결국 해결책으로 이끌었습니다. "Location :"은 디렉토리를 가리키고 있으며, 그 디렉토리의 이름을 바꾸면 패키지가 pip의 목록에서 제거되었습니다. 디렉토리 이름을 바꾸어 pip의 목록에 다시 나타나지 않았으므로 이제 virtualenv에 패키지를 다시 설치할 수 있습니다.
python setup.py install
PyCharm에서 한 번 실행 하면 모든 패키지가 내 conda 기본 환경에 설치됩니다. 나중에이 모든 패키지를 제거하려고하면 pip uninstall
작동하지 않습니다. /anaconda3/lib/python3.7/site-packages에서 수동으로 삭제해야했습니다.
따라서 requirements.txt 파일을 작성하는 대신 setup.py를 사용하는 이유를 알 수 없습니다. 요구 사항 파일은 가상 환경에 패키지를 설치하는 데 사용될 수 있으며 시스템 파이썬 패키지를 망칠 수 없습니다.
bash를 사용하여 다음과 같은 명령을 읽으면 관련 파일을 제거하는 것이 좋습니다.
sudo python setup.py install --record files.txt
sudo bash -c "cat files.txt | xargs rm -rf"
pip uninstall <your_package>
. stackoverflow.com/questions/1231688/…를 참조하십시오 .