[python] “pip”로 패키지를 제거하면 종속 패키지도 제거됩니까?

당신이 사용하는 경우 pip패키지를 설치하기 위해 필요한 모든 패키지는 또한 (종속)와 함께 설치됩니다. 해당 패키지를 제거하면 종속 패키지도 제거됩니까?



답변

아니요, 종속성 패키지를 제거하지 않습니다. 지정된 패키지 만 제거합니다.

$ pip install specloud
$ pip freeze # all the packages here are dependencies of specloud package

figleaf == 0.6.1
코 == 1.1.2
피노키오 == 0.3
specloud == 0.4.5

$ pip uninstall specloud
$ pip freeze

figleaf == 0.6.1
코 == 1.1.2
피노키오 == 0.3

보시다시피 이러한 패키지는 종속성 specloud이며 여전히 존재하지만 specloud패키지 자체는 아닙니다 .

아래에서 언급 한 것처럼 pip-autoremove 유틸리티를 설치하고 사용하여 패키지와 사용하지 않는 종속성을 제거 할 수 있습니다 .


답변

pip-autoremove 유틸리티를 설치하고 사용하여 패키지와 사용하지 않는 종속성을 제거 할 수 있습니다 .

# install pip-autoremove
pip install pip-autoremove
# remove "somepackage" plus its dependencies:
pip-autoremove somepackage -y


답변

이 bash 줄을 사용하여 패키지의 종속성을 성공적으로 제거했습니다.

for dep in $(pip show somepackage | grep Requires | sed 's/Requires: //g; s/,//g') ; do pip uninstall -y $dep ; done

이것은 pip 1.5.4에서 작동했습니다.


답변

일부는 수행하기가 다소 어려울 수도 있지만 해결책을 찾았습니다.

1 단계 (python3 및 Linux의 경우) :
pip3 install pip-autoremove
2 단계 :
cd /home/usernamegoeshere/.local/bin/
3 단계 :
gedit /home/usernamegoeshere/.local/lib/python3.8/site-packages/ pip_autoremove.py
및 모든 pip를 pip3 4 단계로 변경하십시오. ./pip-autoremove packagenamegoeshere

적어도 이것은 나를 위해 일한 것입니다 …


답변

https://github.com/cls1991/pef를 사용해보십시오 . 모든 종속성이있는 패키지를 제거합니다.


답변