[python] pip 제거를위한 확인 프롬프트 무시

내 모든 webapp 종속성이 virtualenv에 설치되었는지 확인하기 위해 내 수퍼 유저 환경에서 모든 django 패키지를 제거하려고합니다.

sudo su
sudo pip freeze | grep -E '^django-' | xargs pip -q uninstall

그러나 pip는 모든 패키지 제거를 확인하기를 원하며 pip에 대한 -y옵션 이없는 것 같습니다 . 파이썬 모듈 배치를 제거하는 더 좋은 방법이 있습니까? 가 rm -rf .../site-packages/갈 수있는 적절한 방법은? easy_install 대안이 있습니까?

또는 시스템 python 모듈에 의존하여 이러한 종속성을 충족시키는 것보다 pip가 virtualenv에 모든 종속성을 설치하도록하는 것이 더 낫습니다 (예 🙂 pip --upgrade install. 그러나 시스템 모듈을 재정의하기 위해 동일하게 이전 버전을 설치 하도록 강제 하는 것이 좋습니다. 내 virtualenv 활성화를 시도한 다음 pip install --upgrade -r requirements.txt내 시스템 경로에 존재하는 종속성을 설치하는 것 같지만 시스템 모듈이 오래 되었기 때문인지 확신 할 수 없습니다. 그리고이 man pip동작을 보장하지 않는 것 같습니다 (즉 , 시스템 사이트 패키지에 이미 존재하는 동일한 버전의 패키지 설치 ).



답변

pip 버전 7.1.2부터 실행할 수 있습니다. pip uninstall -y <python package(s)>

pip uninstall -y package1 package2 package3

또는 파일에서

pip uninstall -y -r requirements.txt


답변

Pip에는 –yes 옵션이 포함되지 않습니다 (pip 버전 1.3.1 기준).

해결 방법 : yes를 파이프하십시오!

$ sudo ls  # enter pw so not prompted again
$ /usr/bin/yes | sudo pip uninstall pymongo


답변

에서 모든 패키지를 제거하려면 requirements.txt,

pip uninstall -y -r requirements.txt


답변

또는 시스템 Python 모듈에 의존하여 이러한 종속성을 충족시키는 것보다 pip가 virtualenv에 모든 종속성을 설치하도록 강제하는 것이 더 낫습니다.

예. 내장 된 시스템 설치 패키지를 너무 엉망으로 만들지 마십시오. 많은 시스템 패키지, 특히 OS X (데비안 및 파생 된 변종 포함)에서 너무 많이 의존합니다.

pip –upgrade install, 그러나 시스템 모듈을 재정의하기 위해 동일하게 이전 버전을 설치해야합니다.

시스템 패키지에 이미있는 venv 내에 설치된 패키지가 몇 개 더있는 경우, 특히 버전이 다른 경우 큰 문제가되지 않습니다. 이것이 virtualenv의 요점입니다.

내 virtualenv를 활성화 한 다음 pip install –upgrade -r requirements.txt를 활성화하려고 시도했는데 내 시스템 경로에 존재하는 종속성도 설치하는 것 같지만 내 시스템 모듈이 오래 되었기 때문인지 확신 할 수 없습니다. 그리고 man pip는이 동작을 보장하지 않는 것 같습니다 (즉, 시스템 사이트 패키지에 이미 존재하는 동일한 버전의 패키지 설치).

아니요, --no-site-packages플래그를 사용하여 만들지 않았거나 필수 버전과 현재 버전이 다른 경우가 아니면 기본 설치에 이미있는 패키지를 설치하지 않습니다 .


답변

Lakshman Prasad가 옳았 pip --upgrade고 / 또는 virtualenv --no-site-packages갈 길입니다. 시스템 전체의 파이썬 모듈을 제거하는 것은 좋지 않습니다.

--upgradePIP에 대한 옵션은 이미 시스템 환경에 존재하는 경우에도, 가상 ENV에 필요한 모듈을 설치 않으며, 필요한 버전 또는 최신 버전의 시스템 버전과 동일한 경우에도.

pip --upgrade install

그리고 가상 환경을 만들 때 –no-site-packages 옵션을 사용하면 시스템 경로에 누락 된 모듈이 있어도 누락 된 종속성이 가려지지 않습니다. 이는 한 패키지에서 다른 패키지로 모듈을 마이그레이션하는 동안 문제를 노출하는 데 도움이됩니다. 이내에.


답변

pip install -U xxxx

확인 우회 가능


답변