pip 명령을 사용하여 requirements.txt에서 Python 패키지 업그레이드
pip 명령을 사용하여 requirements.txt 파일에서 모든 Python 패키지를 어떻게 업그레이드합니까?
아래 명령으로 시도
$ pip install --upgrade -r requirements.txt
파이썬 패키지에는 버전 번호 ( Django==1.5.1
) 가 접미사로 붙어 있으므로 업그레이드되지 않는 것 같습니다. requirements.txt 파일을 수동으로 편집하는 것보다 더 좋은 방법이 있습니까?
편집하다
Andy가 그의 답변에서 언급했듯이 패키지는 특정 버전에 고정되어 있으므로 pip 명령을 통해 패키지를 업그레이드 할 수 없습니다.
그러나 pip-tools
다음 명령 을 사용하여 이를 달성 할 수 있습니다 .
$ pip-review --auto
그러면 requirements.txt에서 모든 패키지가 자동으로 업그레이드됩니다 ( pip-tools
pip install 명령을 사용하여 설치해야 함).
아니요. 요구 사항 파일이 특정 버전 에 고정 되었습니다 . 요구 사항이 해당 버전으로 설정된 경우 해당 버전 이상으로 업그레이드하지 않아야합니다. 업그레이드 해야하는 경우 요구 사항 파일에서 고정되지 않은 버전으로 전환해야합니다.
예:
lxml>=2.2.0
이것은 lxml을 2.2.0보다 새로운 버전으로 업그레이드합니다.
lxml>=2.2.0,<2.3.0
그러면 lxml이 2.2.0에서 2.3.0 사이의 최신 버전으로 업그레이드됩니다.
당신은 시도 할 수 있습니다:
pip install --upgrade --force-reinstall -r requirements.txt
설치된 패키지를 무시하고 새 패키지를 설치할 수도 있습니다.
pip install -I, --ignore-installed -r requirements.txt
나는 이미 여기 에서이 질문에 대답했다 . 내 해결책은 다음과 같습니다.
패키지별로 패키지를 업그레이드하고 requirements.txt 파일을 업데이트하는 쉬운 방법이 없었기 때문에 선택한 패키지 (또는 모든 패키지) 의 파일 버전도 업데이트하는 이 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
명령 에 인수를 추가 합니다.
전체 공개 :이 패키지를 작성했습니다.
bash를 사용하여 그렇게 할 수 없었기 때문에 버전이없는 새 요구 사항 파일을 만들고 사용하는 python 모듈을 작성했습니다.
data = open('requirements-prod.pip', 'r')
data2 = open('requirements-prod-no-version.pip', 'w')
for line in data.readlines():
new_line = line[:line.index('==')]
data2.write(new_line + '\n')
data2.flush()
그런 다음 새 파일에서 libs를 설치하십시오. pip install -U -r requirements-prod-no-version.pip
마지막으로 버전을 원본 파일로 고정 pip freeze > requirements-prod.pip
다음과 같이 requirements.txt를 편집하고 $ sh ./requirements.txt를 실행합니다.
pip install -U amqp;
pip install -U appdirs;
pip install -U arrow;
pip install -U Babel;
pip install -U billiard;
pip install -U celery;
pip install -U Django;
pip install -U django-cors-headers;
pip install -U django-crispy-forms;
pip install -U django-filter;
pip install -U django-markdown-deux;
pip install -U django-pagedown;
pip install -U django-timezone-field;
pip install -U djangorestframework;
pip install -U fcm-django;
pip install -U flower;
pip install -U gunicorn;
pip install -U kombu;
pip install -U Markdown;
pip install -U markdown2;
pip install -U packaging;
'programing tip' 카테고리의 다른 글
문자열에서 웹 작업자를 만드는 방법 (0) | 2020.10.19 |
---|---|
배치-rmdir 명령에서 "디렉토리가 비어 있지 않습니다"가져 오기 (0) | 2020.10.19 |
쌓인 반투명 상자의 색상은 주문에 따라 다릅니 까? (0) | 2020.10.19 |
레이크는 정확히 무엇입니까? (0) | 2020.10.19 |
bash-어떤 명령에서 cd로 결과를 파이프하는 방법 (0) | 2020.10.19 |