Как мне обновить все мои пакеты python из файла requirements.txt с помощью команды pip?
попробовал с помощью команды ниже
$ pip install --upgrade -r requirements.txt
Поскольку пакеты python имеют суффикс с номером версии ( Django==1.5.1
), они, похоже, не обновляются. Есть ли лучший подход, чем редактирование файла requirements.txt вручную?
РЕДАКТИРОВАТЬ
Как сказал Энди в своем ответе, пакеты привязаны к определенной версии, поэтому обновить пакеты с помощью команды pip невозможно.
Но мы можем добиться этого с pip-tools
помощью следующей команды.
$ pip-review --auto
это автоматически обновит все пакеты из файла requirements.txt (убедитесь, что вы установили его pip-tools
с помощью команды pip install).
python
pip
packages
requirements.txt
Abhiomkar
источник
источник
pip-compile -U requirements.txt
.Ответы:
Нет. Ваш файл требований закреплен за определенными версиями. Если ваши требования установлены для этой версии, вам не следует пытаться выполнить обновление за пределами этих версий. Если вам нужно выполнить обновление, вам нужно переключиться на незакрепленные версии в файле требований.
Пример:
Это обновит lxml до любой версии новее 2.2.0.
Это позволит обновить lxml до последней версии между 2.2.0 и 2.3.0.
источник
sed 's/==/>=/g' requirements.txt > TMP_FILE && mv TMP_FILE requirements.txt
заменю все==
на>=
Я уже отвечал на этот вопрос здесь . Вот мое решение:
Поскольку не было простого способа обновления пакета за пакетом и обновления файла requirements.txt, я написал это pip-upgradeder, который также обновляет версии в вашем
requirements.txt
файле. для выбранных пакетов (или всех пакетов).Монтаж
использование
Активируйте ваш virtualenv (важно, потому что он также установит новые версии обновленных пакетов в текущем virtualenv).
cd
в каталог вашего проекта, затем запустите:Расширенное использование
Если требования размещены в нестандартном месте, отправьте их в качестве аргументов:
Если вы уже знаете, какой пакет хотите обновить, просто отправьте их в качестве аргументов:
Если вам нужно перейти на предварительную / пострелизную версию, добавьте
--prerelease
аргумент в свою команду.Полное раскрытие: я написал этот пакет.
источник
можешь попробовать:
Вы также можете игнорировать установленный пакет и установить новый:
источник
-I
и--ignore-installed
являются одними и теми же флагами, и, конечно же, недопустимо иметь,
там. Таким образом, во время установки не будет происходить возврат к предыдущей версии, а после завершения установки требований можно будет обновить установленные пакеты с помощьюpip-review --auto
.Я предлагаю заморозить все ваши зависимости, чтобы иметь предсказуемые сборки .
При этом вы можете обновить сразу все зависимости следующим образом:
Сделав выше, проверить свой проект с новым набором пакетов и в конечном итоге совершить на
requirements.txt
файл в хранилище.источник
Я просто должен был сделать то же самое ... использовал этот небольшой однострочник для выполнения работы:
который:
packages=$(cat requirements.txt | sed 's/==.*//g')
создает список текущих имен пакетов в файле requirements.txt (удаляя версию).echo $packages | xargs pip3 install -U
затем передает все пакеты в качестве аргументов в pip3 для обновления.freeze=$(pip3 freeze);
Получает все текущие версии пакета в формате, необходимом для файла requirements.txt.for p in $(echo $packages)
затем перебирает имена пакетовecho $freeze | grep -E "^${p}==" >> requirements.new
получает строку версии пакета из вывода pip freeze, которая соответствует пакету, и записывает в новый файл requirements.txtЭто дает дополнительное преимущество, заключающееся в сохранении порядка исходного файла requirements.txt. :)
Надеюсь это поможет!
источник
Поскольку я не мог этого сделать с помощью bash, я написал модуль python для создания нового файла требований без версий и его использования:
Затем установите библиотеки из нового файла
pip install -U -r requirements-prod-no-version.pip
Наконец, заморозьте версии в исходном файле
pip freeze > requirements-prod.pip
источник
Другое решение - использовать пакет требований к обновлению.
А затем запустите:
Он обновит все пакеты, которые не являются последними версиями, а также создаст обновленный файл requirements.txt в конце.
источник
1) Чтобы обновить установленные файлы pip из reqs.txt, добавьте > = вместо ==, это скажет pip установить lib превышающей или равной запрашиваемой вами версии, здесь путем установки самой последней версии запрашиваемой библиотеки
1.a) ** Мой ответ на тему ** Добавив
py -m pip install -r
reqs.txt к ежедневному перезапуску ... или что-то в этом роде, вы можете обновить установленные библиотеки. Подытожил Энди Идеально-Моя причина для входа в эту тему заключалась в том, чтобы найти информацию о том, как обновить базовый пип виртуального env (обычно для меня 10.0.03 ??)
в надежде решить проблему, для которой я смог найти одно из двух решений
Благодаря Энди я удовлетворил потребность B
Добавив pip > = запрошенная версия в reqs.txt
при создании новой виртуальной среды || повторное создание предыдущего Venv
py -m venv devenv
для установки нового dev env
evenv\scripts\activate.bat
активировать dev env
python -m pip install -r requirenments.txt
установить базовые библиотеки
урожайность
Извините за мозговой дамп, надеюсь, это кому-то поможет :)
🤳 Остин 👨🎤🚀🥊
источник
Второй ответ наиболее полезен, но я хотел заблокировать одни пакеты, а другие были в последней версии (например, youtube-dl).
Пример
requirements.txt
будет выглядеть так (~ означает совместимый):Затем в терминале используйте команду
pip install --upgrade -r requirements.txt
Это гарантирует, что Pillow останется на уровне 6.2.2, запросы будут обновлены до последней версии 2.22.x (если доступно), и будет установлена последняя версия youtube-dl, если она еще не установлена.
источник
Думаю, самое простое решение - создать файл requirements.txt с помощью:
источник
Вы можете использовать следующую команду в Linux и Mac:
cat requirements.txt | cut -f1 -d "=" | xargs pip install -U
источник
Если вы устанавливаете что-либо в своем проекте django и после установки вы хотите обновить свой файл требований, эта команда может обновить ваш файл require.txt pip freeze> requirements.txt
если ваш файл требований не существует в вашем проекте, вы можете использовать эту команду для создания нового файла require.txt pip freeze> requirements.txt
источник
Я редактирую файл requirements.txt, как показано ниже, и запускаю $ sh ./requirements.txt.
источник