Django 프로젝트의 virtualenv에서 요구 사항 파일과 함께 pip를 사용하고 있습니다. Django 자체와 같은 일부 패키지를 업그레이드하려고하는데 소스 코드 충돌에 대한 오류가 발생합니다.
Source in `<virtualenv`>/build/Django has version 1.2.3 that conflicts with Django==1.2.4 (from -r requirements/apps.txt (line 3))
내 요구 사항 파일에서 Django의 버전 번호를 1.2.3에서 1.2.4로 업데이트 한 후입니다. 이 명령을 사용하여 실제로 업그레이드를 수행하고 있습니다.
pip --install --upgrade -E `<virtualenv dir`> --requirement `<requirements file`>
전체 패키지 재 다운로드를 트리거하는 플래그를 찾을 수 없습니다. 심지어 제거 명령을 먼저 실행 한 다음 설치를 시도했지만 주사위는 없습니다. 어쩌면 내가 뭔가를 놓치고 있습니까?
답변
그것이 정확히 당신의 문제인지 확실하지 않지만, 제 경우에는 Django를 1.2.4로 업그레이드 할 수 없었습니다-항상 1.2.3 버전으로 마무리되었으므로 Django를 다음과 같이 제거했습니다.
<virtualenv>/bin/pip uninstall Django
그런 다음 <virtualenv>/build/Django
디렉토리를 제거 하고 마침내 올바른 버전을 설치했습니다.
<virtualenv>/bin/pip install Django
이것이 도움이되기를 바랍니다.
답변
다음 명령을 실행하고 1.2.3에서 1.4.0로 업그레이드했습니다.
pip install Django --upgrade
업그레이드 바로 가기 :
pip install Django -U
참고 : 업그레이드중인 패키지에 요구 사항이있는 경우이 명령은 모든 요구 사항을 사용 가능한 최신 버전으로 추가로 업그레이드합니다. 최신 버전의 pip에서는 을 지정하여이 동작을 방지 할 수 있습니다--upgrade-strategy only-if-needed
. 이 플래그를 사용하면 설치된 버전의 종속 패키지가 더 이상 업그레이드 된 패키지의 요구 사항을 충족시키지 않으면 종속성이 업그레이드되지 않습니다.
답변
핍 문서 예제 3 에 따르면
pip install --upgrade django
그러나 내 경험에 따르면이 방법을 사용하면 관련 패키지도 업그레이드됩니다. 예:
업그레이드 할 가정 somepackage
필요로 django >= 1.2.4
그것은 또한 업그레이드 할 방법이 종류의 사용 somepackage
및 django
최신 갱신에 있습니다. 안전하기 위해 :
# assume you want to keep django 1.2.4
pip install --upgrade somepackage django==1.2.4
이렇게하면 somepackage
django를 1.2.4 버전으로 업그레이드 하고 유지합니다
답변
에 대한 바로 가기 명령 --upgrade
:
pip install Django --upgrade
입니다 :
pip install Django -U
답변
패키지를 업그레이드하면 이전 패키지가 제거됩니다.
이 작업을 수행하는 편리한 방법은이 pip-upgrader 를 사용 requirements.txt
하여 선택한 패키지 (또는 모든 패키지) 의 파일 버전도 업데이트하는 것 입니다.
설치
pip install pip-upgrader
용법
virtualenv를 활성화하십시오 (현재 virtualenv에 업그레이드 된 패키지의 새 버전도 설치하므로 중요).
cd
프로젝트 디렉토리에 넣고 다음을 실행하십시오.
pip-upgrade
고급 사용법
요구 사항이 비표준 위치에있는 경우 인수로 보내십시오.
pip-upgrade path/to/requirements.txt
업그레이드하려는 패키지를 이미 알고 있다면 인수로 보내십시오.
pip-upgrade -p django -p celery -p dateutil
시험판 / 시험판 버전으로 업그레이드해야하는 경우 --prerelease
명령 에 인수를 추가 하십시오.
전체 공개 : 나는이 패키지를 썼다. 도움이 되길 바랍니다.
답변
이라는 특정 패키지 하나만 업그레이드하려는 경우 somepackage
최신 버전의 pip에서 사용해야하는 명령은 다음과 같습니다.
pip install --upgrade --upgrade-strategy only-if-needed somepackage
이것은 django에서 현재 django의 특정 버전 (Django = 1.9.x)에서만 작동하고 버그 수정 / 새로운 기능으로 일부 종속 패키지를 업그레이드하고 업그레이드 된 패키지에 의존하는 django 응용 프로그램을 개발할 때 매우 유용합니다 django에서 (그러나 1.5 이후 django의 모든 버전과 호환됩니다). 기본 동작은 pip install --upgrade django-some-package
django를 사용 가능한 최신 버전으로 업그레이드하여 응용 프로그램을 손상시킬 수 있지만 --upgrade-strategy only-if-needed
종속 패키지는 필요한 경우에만 업그레이드됩니다.
답변
일반적으로 pip는 자체적으로 정리되고 빌드 디렉토리의 내용을 제거합니다. 이 작업을 수행하지 않는 유일한 경우는 다음과 같습니다.
--no-install
옵션을 사용했습니다- 편집 가능한 패키지를 사용하고 있습니다
- 설치가 취소되었거나 중단되었습니다.
다른 모든 경우에는 build
환경을 방해하는 디렉토리가 없어야 합니다.