Обновление пакетов python из файла требований .txt с помощью команды pip

Как обновить все мои пакеты python из файла requirements.txt с помощью команды pip?

попытался выполнить команду

$ pip install --upgrade -r requirements.txt

Так как пакеты python имеют номер версии (Django==1.5.1), они, похоже, не обновляются. Есть ли лучший подход, чем вручную редактировать файл требований .txt?

ИЗМЕНИТЬ

Как отметил Энди в своем ответе, пакеты привязаны к определенной версии, поэтому обновление пакетов через команду pip невозможно.

Но мы можем достичь этого с помощью pip-tools, используя следующую команду.

$ pip-review --auto

это автоматически обновит все пакеты с помощью требования. txt (обязательно установите pip-tools с помощью команды установки пакета).

Ответ 1

Нет. Ваш файл требований был прикреплен к определенным версиям. Если ваши требования настроены на эту версию, вы не должны пытаться обновить эти версии. Если вам требуется , вам необходимо переключиться на версии без ограничений в файле требований.

Пример:

lxml>=2.2.0

Это приведет к обновлению lxml до любой версии выше версии 2.2.0

lxml>=2.2.0,<2.3.0

Это обновит lxml до самой последней версии между 2.2.0 и 2.3.0.

Ответ 2

вы можете попробовать:

pip install --upgrade --force-reinstall -r requirements.txt

Вы также можете игнорировать установленный пакет и установить новый:

pip install -I, --ignore-installed -r requirements.txt

Ответ 3

Я уже ответил на этот вопрос здесь. Здесь мое решение:

Поскольку не было простого способа обновления пакета за пакетом и обновления файла requirements.txt, я написал этот pip-updrader, который также обновляет версии в вашем 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 в свою команду.

Полное раскрытие: я написал этот пакет.

Ответ 4

Поскольку я не мог этого сделать с помощью 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

Ответ 5

Следующие шаги помогли мне:

pip install --upgrade -r requirements.txt

пип версия: 18.1

Ответ 6

Полезной утилитой является https://pypi.org/project/pur/

использование

Предоставьте pur ваш файл needs.txt, и он обновит все ваши пакеты до последних версий.

Например, с учетом файла require.txt:

flask==0.9
sqlalchemy==0.9.10
alembic==0.8.4

Запуск pur для этого файла обновляет пакеты до текущих последних версий:

$ pur -r requirements.txt
Updated flask: 0.9 -> 1.0.2
Updated sqlalchemy: 0.9.10 -> 1.2.8
Updated alembic: 0.8.4 -> 0.9.9
All requirements up-to-date.

Pur никогда не изменяет вашу среду или установленные пакеты, он только изменяет ваш файл needs.txt.

Ответ 7

Я редактирую файл требований .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;