최근에 어딘가에 문서화하려는 pip
의 -I
플래그를 사용할 때 문제가 발생했습니다 .
-I
것 없는 진행하기 전에 기존 패키지를 제거; 그냥 오래된 것 위에 설치합니다. 즉, 버전간에 삭제해야하는 모든 파일이 그대로 유지됩니다. 해당 파일이 설치된 다른 모듈과 이름을 공유하는 경우 이상한 동작이 발생할 수 있습니다.
예를 들어,이라는 패키지가 있다고 가정 해 봅시다 package
. package
s 파일 중 하나 에서을 사용 import datetime
합니다. 이제에서는 package@2.0.0
표준 라이브러리 datetime
모듈을 가리 키지 만에서 어떤 이유로 든 표준 라이브러리 버전의 대체로 package@3.0.0
로컬을 추가했습니다 datetime.py
.
이제 내가 실행한다고 말하지만 pip install package==3.0.0
나중에 실제로 버전을 원한다는 것을 알게 2.0.0
됩니다. 지금 실행하면 pip install -I package==2.0.0
, 기존의 datetime.py
어떤 호출 할 수 있도록 파일은 제거되지 않습니다 import datetime
잘못된 모듈을 가져옵니다.
필자의 경우 최신 버전의 패키지가 Python 3과 호환되는 파일을 추가하고 Python 2를 지원하도록 패키지 버전을 다운 그레이드 할 때 Python-3-only 모듈을 계속 가져 오기 때문에 이상한 구문 오류가 발생했습니다.
이를 바탕으로, -I
설치된 패키지 버전을 업데이트 할 때 이전 패키지를 제거하는 것이 항상 사용 하는 것이 좋습니다 .
pip install MySQL_python==1.8.9