Как заморозить требование с помощью pipenv?
Например, у нас есть некоторый pipfile (ниже), и я хотел бы заморозить версию django. У нас нет require.txt, и мы используем только pipenv. Как я могу заморозить версию Django?
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
django = "*"
[dev-packages]
black = "*"
[requires]
python_version = "3.6"
11 ответов
Это так же просто, как изменить django = "*"
в django = "your-preferred-version"
, Поэтому, если вы хотите заморозить его до версии 2.1, последней версии на момент написания этой статьи, вы можете сделать это:
[packages]
django="2.1"
pipfile
В репозитории Git есть несколько хороших примеров различных способов указания строк версии: https://github.com/pypa/pipfile
Обратите внимание, что когда вы генерируете файл блокировки из своего pip-файла, этот файл блокировки на самом деле является файлом, который должен "заморозить" вашу зависимость от конкретной версии. Таким образом, вам не нужно беспокоиться о том, какая версия работает с вашим кодом, поскольку при распространении файла блокировки все остальные должны использовать те же версии зависимостей, что и вы. Разработчики pipenv предназначены для разработчиков использовать его следующим образом: https://github.com/pypa/pipfile/issues/7
В Pipenv изначально реализованы требования к замораживанию. Это так просто, как:
pipenv lock -r > requirements.txt
Начиная с версии 2022.8.13 pipenv, «старый»lock -r
функциональность удалена.
В дальнейшем это должно быть достигнуто с помощью:
pipenv requirements > requirements.txt
Предполагая, что у вас активирована виртуальная среда, у вас есть три простых подхода. Я перечислю их от менее подробных к более подробным.
пип
$ pip freeze > requirements.txt
pip3
$ pip3 freeze > requirements.txt
Если виртуальная среда активна, pip
наверняка эквивалентен pip3
.
pipenv run
$ pipenv run pip freeze > requirements.txt
$ pipenv run pip3 freeze > requirements.txt
pipenv run
порождает команду, установленную в виртуальной среде, поэтому эти команды эквивалентны тем, которые выполняются без pipenv run
. Еще раз, предполагается, что ваша виртуальная среда активна.
Недавнийpipenv
версии (например, версия 2022.6.7) используютrequirements
подкоманда иpipenv lock -r
не рекомендуется.
Чтобы заморозить зависимости по умолчанию
pipenv requirements > requirements.txt
также заморозить зависимости разработки
pipenv requirements --dev > dev-requirements.txt
Используя run
Вы можете запустить данную команду из virtualenv с любыми переданными аргументами
$ pipenv run pip freeze > requirements.txt
Вот как мне pipenv подсказал сгенерировать файл requirements.txt из Pipfile проекта:
pipenv lock --requirements
Используйте это, поскольку флаг -r устарел
pipenv requirements > requirements.txt
Сначала убедитесь, что ваша виртуальная среда активна, затем откройте терминал и выполните команду pip3 freeze > reqirements.txt (pip3) pip3 freeze > reqirements.txt (pip3)
Вы можете создать файл require.txt с помощью этой команды:
pip3 freeze > requirements.tx