如何用pipenv冻结需求?

2024-05-03 20:09:20 发布

您现在位置:Python中文网/ 问答频道 /正文

例如,我们有一些pipfile(如下),我想冻结django版本。我们没有requirements.txt,只使用pipenv。如何冻结django版本?

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
django = "*"

[dev-packages]
black = "*"

[requires]
python_version = "3.6"

Tags: djangohttpsorg版本txtpypiurlssl
3条回答

假设您激活了虚拟环境,您有三种简单的方法。我会把它们从头到尾列出。

pip

$ pip freeze > requirements.txt

pip3

$ pip3 freeze > requirements.txt

如果虚拟环境是活动的,pip肯定相当于pip3

pipenv运行

$ pipenv run pip freeze > requirements.txt
$ pipenv run pip3 freeze > requirements.txt

pipenv run生成安装到虚拟环境中的命令,因此这些命令等同于不运行pipenv run的命令。再次假设您的虚拟环境是活动的。

只需将django = "*"更改为django = "your-preferred-version"。因此,如果您想将其冻结到2.1,即撰写本文时的最新版本,可以执行以下操作:

[packages]
django="2.1"

Git repo有一些很好的例子,可以用不同的方法指定版本字符串:https://github.com/pypa/pipfile#pipfile

注意,当您从pipfile生成锁文件时,该锁文件实际上是应该“冻结”您对特定版本的依赖关系的文件。这样,您就不必担心哪个版本与您的代码一起工作,因为通过分发锁文件,其他所有人都必须使用与您相同的依赖关系版本。pipenv的开发人员打算这样使用它:https://github.com/pypa/pipfile/issues/7

Pipenv以本机方式实现冻结需求.txt。 它很简单:

pipenv lock -r > requirements.txt

相关问题 更多 >