pip가 내 패키지의 이전 버전을 설치하는 이유는 무엇입니까?
방금 PyPi (1.2.1.0-r4)에 새 버전의 패키지를 업로드했습니다. egg 파일을 다운로드하고 easy_install로 설치할 수 있으며 버전이 올바르게 확인됩니다. 하지만 pip를 사용하여 설치하려고하면 버전 1.1.0.0이 대신 설치됩니다. pip를 사용할 버전을 명시 적으로 지정하더라도 pip install -Iv tome==1.2.1.0-r4
다음 메시지가 표시 Requested tome==1.2.1.0-r4, but installing version 1.1.0.0
되지만 그 이유를 이해할 수 없습니다.
나는 두 번 확인하고 parse_version
1.2.1의 버전 문자열이 1.1.0의 버전 문자열보다 큰지 확인했습니다.
>>> from pkg_resources import parse_version as pv
>>> pv('1.1.0.0') < pv('1.2.1.0-r4')
True
>>>
왜 대신 1.1.0을 설치하기로 선택했는지 아십니까?
이것은 훌륭한 질문입니다. 알아내는 데 영원히 걸렸습니다. 이것은 나를 위해 작동하는 솔루션입니다.
분명히 pip
패키지의 로컬 버전을 찾을 수 있다면 pip
원격 버전보다 로컬 버전을 선호 할 것입니다. 나는 심지어 내 컴퓨터를 인터넷에서 분리하고 다시 시도했다 pip
. 패키지를 성공적으로 설치했고 불평조차하지 않았을 때 소스는 분명히 로컬이었다.
제 경우에 정말 혼란스러운 부분 pip
은 pypi 에서 최신 버전 을 찾아 보고 한 다음 계속 진행하여 어쨌든 이전 버전을 다시 설치했다는 것입니다 ... arggh. 또한 그것이 무엇을하는지, 왜 그런지 알려주지 않았습니다.
이 문제를 어떻게 해결 했습니까?
플래그를 pip
사용하여 자세한 출력을 제공 할 수 -v
있지만 하나는 충분하지 않습니다. -v
더 자세한 출력을 위해 최대 3 배까지 여러 번 수행 할 수 있다는 도움말을 RTFM했습니다 . 그래서 나는 :
pip install -v -v -v <my_package>
그런 다음 출력을 살펴 보았습니다. 한 줄이 내 눈을 사로 잡았습니다.
/ tmp / pip-build-root /의 소스 버전은 0.0.11이며 요구 사항 <my_package>를 충족합니다.
그 디렉토리를 삭제 한 후 pip
pypi에서 최신 버전 을 설치했습니다.
다음을 사용하여 패키지를 다시 강제로 다운로드하십시오.
pip install --no-cache-dir --upgrade <package>
pip의 메인 테너로서 놀라운 작업을 수행 하는 Marcus Smith 덕분 에이 문제는 2013-07-23에 출시 된 pip 1.4 버전에서 수정되었습니다.
이 버전에 대한 변경 로그의 관련 정보
빌드 디렉토리 정리 및 재사용 안 함과 관련된 여러 문제 (# 413, # 709, # 634, # 602 및 # 939)를 수정했습니다. (풀 # 865, # 948)
압축이 풀린 소스가있는 빌드 디렉토리가 있으면 버전을 확인하지 않는 알려진 버그가 pip에 있음을 여기서 발견 했습니다. 문제가되는 패키지에서 이것을 확인하고 빌드 디렉토리에서 소스를 삭제 한 후 pip가 필요한 버전을 설치했습니다.
pip
일부 배포 패키지 (예 : Ubuntu python-pip)와 함께 제공 되는 버전을 사용하는 경우 최신 pip
버전 을 설치해야 할 수 있습니다 .
pip
최신 버전으로 업데이트 :
sudo pip install -U pip
"virtualenv"의 경우 "sudo"를 건너 뜁니다.
pip install -U pip
셸이 업데이트 -bash: /usr/bin/pip: No such file or directory
후 다음과 같은 내용 을 보고하는 경우 다음 명령이 필요할 수 있습니다 pip
.
hash -d pip
이제 평소와 같이 패키지를 설치하십시오.
pip install -U foo
또는
pip install foo==package.version.here
pika 0.9.5를 0.9.8로 업데이트하는 데 동일한 문제가 발생했습니다. 유일한 작동 방법은 tarball에서 설치하는 것입니다 : pip install https://pypi.python.org/packages/source/p/pika/pika-0.9.8.tar.gz
.
마이크로 버전을 사용하면 pip가 인식하지 못하는 것 같습니다. 예를 들어 버전 1.9.9.1을 업그레이드 할 수 없습니다.
제 경우에는 사용 된 파이썬 버전 (3.4)이 Django 2.1 종속성 요구 사항 (python> = 3.5)을 충족하지 못했습니다.
제 경우에는 .pip
홈 디렉토리에서 폴더 를 삭제해야했고 이후 버전의 여러 라이브러리를 가져올 수있었습니다. 이것은 Linux에 있음을 유의하십시오.
pip --version
pip 18.1 from /usr/lib/python2.7/site-packages/pip (python 2.7)
virtualenv --version
15.1.0
참고 URL : https://stackoverflow.com/questions/14617136/why-is-pip-installing-an-old-version-of-my-package
'code' 카테고리의 다른 글
jQuery : 창 너비를 즉시 감지하는 방법? (0) | 2020.11.10 |
---|---|
최신 JRE 버전이 이전 JDK 버전으로 컴파일 된 Java 프로그램을 실행할 수 있습니까? (0) | 2020.11.10 |
random.shuffle이 None을 반환하는 이유는 무엇입니까? (0) | 2020.11.10 |
밑줄 sortBy를 사용하여 개체 정렬이있는 배열 (0) | 2020.11.10 |
UserDefault가 있는지 확인-Swift (0) | 2020.11.10 |