如何用pipenv冻结需求?

时间:2018-08-14 16:03:29

标签: python pipenv pipfile

例如,我们有一些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"

7 个答案:

答案 0 :(得分:8)

Pipenv本身执行冻结要求。 它很简单:

pipenv lock -r > requirements.txt

答案 1 :(得分:1)

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

[packages]
django="2.1"

pipfile Git存储库提供了一些很好的示例,说明了不同的方式来指定版本字符串:https://github.com/pypa/pipfile#pipfile

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

答案 2 :(得分:0)

您可以使用以下命令创建requirements.txt:

pip3 freeze > requirements.txt

答案 3 :(得分:0)

通过使用run,您可以从virtualenv运行给定命令,并转发所有参数

$ pipenv run pip freeze  > requirements.txt 

答案 4 :(得分:0)

假设您已激活虚拟环境,则有三种简单的方法。我将列出它们的详细程度从低到高。

$ 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所运行的命令。再次假设您的虚拟环境处于活动状态。

答案 5 :(得分:0)

首先,请确保您的虚拟环境处于活动状态,然后打开终端并运行以下命令 pip3冻结> reqirements.txt(pip3) pip3冻结> reqirements.txt(pip3)

答案 6 :(得分:0)

这是pipenv提示我从项目的Pipfile生成requirements.txt文件的方式:

pipenv lock --requirements