질문자 :Joe
--no-site-packages
옵션으로 생성된 새로운 virtualenv를 사용하여 MySQL_python
버전 1.2.2를 설치하려고 합니다. PyPi에 표시된 현재 버전은 1.2.3 입니다. 이전 버전을 설치하는 방법이 있습니까? 나는 시도했다:
pip install MySQL_python==1.2.2
그러나 설치하면 사이트 패키지에 MySQL_python-1.2.3-py2.6.egg-info
이것은 이 패키지에만 해당하는 문제입니까, 아니면 제가 뭔가 잘못하고 있습니까?
TL;DR:
-
pip install -Iv
(즉, pip install -Iv MySQL_python==1.2.2
)
첫째, 당신이하려는 일에 두 가지 문제가 있습니다. 이미 설치된 버전이 있으므로 현재 기존 드라이버를 제거하거나 pip install -I MySQL_python==1.2.2
그러나 이것이 작동하지 않는다는 것을 곧 알게 될 것입니다. pip의 설치 로그를 보거나 pip install -Iv MySQL_python==1.2.2
를 수행하면 PyPI URL 링크가 MySQL_python v1.2.2에서 작동하지 않는다는 것을 알 수 있습니다. 여기에서 확인할 수 있습니다. http://pypi.python.org/pypi/MySQL-python/1.2.2
다운로드 링크(404)와 대체 URL 링크는 sourceforge.net의 최근 업그레이드와 PyPI의 부실 URL로 인해 무한히 리디렉션됩니다.
따라서 드라이버를 올바르게 설치하려면 다음 단계를 따르십시오.
pip uninstall MySQL_python pip install -Iv http://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.2/MySQL-python-1.2.2.tar.gz/download
Mahmoud Abdelkaderpip install
명령으로 버전 범위를 사용할 수도 있습니다. 이 같은:
pip install 'stevedore>=1.3.0,<1.4.0'
패키지가 이미 설치되어 있고 다운그레이드하려면 다음과 같이 --force-reinstall
pip install 'stevedore>=1.3.0,<1.4.0' --force-reinstall
user1978556이 게시물 에서 제안한 한 가지 방법 pip
버전을 다음과 같이 언급하는 것입니다.
pip install -Iv MySQL_python==1.2.2
즉 ==
사용하고 버전 번호를 언급하여 해당 버전만 설치합니다. -I, --ignore-installed
는 이미 설치된 패키지를 무시합니다.
Srikar Appalaraju특정 python 패키지 버전을 처음 설치하거나 업그레이드 또는 다운그레이드를 사용하려면 다음을 사용하십시오.
pip install --force-reinstall MySQL_python==1.2.4
MySQL_python 버전 1.2.2를 사용할 수 없으므로 다른 버전을 사용했습니다. 인덱스에서 사용 가능한 모든 패키지 버전을 보려면 해당 버전을 제외하십시오.
pip install MySQL_python==
Zach Weg이미 패키지가 설치되어 있으면 pip가 다른 버전으로 덮어쓰지 않을 것이라고 생각합니다. -I
를 사용하여 이전 버전을 무시합니다.
dappawit경우에 따라 이전에 설치된 버전이 캐시됩니다.
~$ pip install pillow==5.2.0
다음을 반환합니다.
요구 사항이 이미 충족됨: /home/ubuntu/anaconda3/lib/python3.6/site-packages(5.2.0)의 pillow==5.2.0
--no-cache-dir을 -I와 함께 사용하여 이것을 덮어쓸 수 있습니다.
~$ pip install --no-cache-dir -I pillow==5.2.0
Jack Chan이것은 pip 버전 10에 도입된 주요 변경 사항인 것처럼 보였으므로 호환되는 버전으로 다운그레이드했습니다.
pip install 'pip<10'
이 명령은 pip에게 버전 10보다 낮은 버전의 모듈을 설치하도록 지시합니다. Python의 사이트 설치를 망치지 않도록 virutalenv에서 이 작업을 수행합니다.
Trenton나는 최근 어딘가에 문서화하고 싶은 pip
의 -I
플래그를 사용할 때 문제에 부딪쳤습니다.
-I
계속 진행하기 전에 기존 패키지를 제거 하지 않습니다. 그것은 단지 오래된 것 위에 설치할 것입니다. 즉, 버전 간에 삭제되어야 하는 모든 파일은 대신 그대로 유지됩니다. 해당 파일이 설치된 다른 모듈과 이름을 공유하는 경우 이상한 동작이 발생할 수 있습니다.
예를 들어 package 라는 package
가 있다고 가정해 보겠습니다. package
파일 중 하나에서 import datetime
을 사용합니다. 이제 package@2.0.0
에서 이것은 표준 라이브러리 datetime
모듈을 package@3.0.0
만 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 전용 모듈을 계속 가져왔습니다.
이를 바탕으로 설치된 패키지 버전을 업데이트할 때 -I
를 사용하는 것보다 이전 패키지를 제거하는 것이 항상 바람직하다고 주장합니다.
0x5453이 아래 명령은 나를 위해 일했습니다.
파이썬 버전 - 2.7
패키지 - 파이썬 젠킨스
명령 - $ pip install 'python-jenkins>=1.1.1'
Tapan Hegde버전이 있는 패키지를 설치할 수 있는 두 가지 방법이 있습니다:- A). pip install -Iv 패키지 이름 == 버전 B). pip install -v 패키지 이름 == 버전
A를 위해
여기에서 설치하는 동안 -I 옵션을 사용하는 경우(패키지가 이미 설치되어 있는지 모를 때)(예: 'pip install -Iv pyreadline == 2.* '또는 기타), 새 버전이 다른 동일한 기존 패키지가 있는 별도의 패키지.
B의 경우
- 처음에는 깨진 요구 사항이 없는지 확인하고 싶을 수 있습니다. 핍 체크
2. 그런 다음 pip 목록으로 이미 설치된 것을 확인하십시오.
3. 패키지 목록에 특정 버전으로 설치하려는 패키지가 포함되어 있으면 pip uninstall package-name을 통해 먼저 이 버전의 패키지를 제거하는 것이 더 좋습니다.
4. 이제 pip install -v package-name==version eg pip install -v pyreadline == 2.*와 같이 특정 버전으로 동일한 패키지를 다시 설치할 수 있습니다.
Samarth최신 버전으로 업데이트하고 싶은데 최신 버전이 무엇인지 모르는 경우 입력할 수 있습니다.
pip install MySQL_python --upgrade
이것은 사용 가능한 최신 버전에 대해 MySQL_python을 업데이트하며, 다른 패키지 버전에 사용할 수 있습니다.
DilMac출처 : http:www.stackoverflow.com/questions/5226311/installing-specific-package-versions-with-pip