programing tip

pip 명령을 사용하여 requirements.txt에서 Python 패키지 업그레이드

itbloger 2020. 10. 19. 07:49
반응형

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-toolspip 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;

참고 URL : https://stackoverflow.com/questions/24764549/upgrade-python-packages-from-requirements-txt-using-pip-command

반응형