27

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

7 回答 7

89

Pipenv 本身就实现了冻结 requirements.txt。它很简单:

pipenv lock -r > requirements.txt
于 2019-01-23T19:25:47.607 回答
19

假设您激活了虚拟环境,您有三种简单的方法。我将把它们从不太冗长到更冗长列出。

点子

$ pip freeze > requirements.txt

点子3

$ pip3 freeze > requirements.txt

如果虚拟环境处于活动状态,pip则肯定等同于pip3.

pipenv 运行

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

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

于 2019-06-28T07:15:31.600 回答
8

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

$ pipenv run pip freeze  > requirements.txt 
于 2019-05-01T16:38:02.130 回答
1

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

[packages]
django="2.1"

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

请注意,当您从 pipfile 生成锁定文件时,该锁定文件实际上是应该将您的依赖项“冻结”到特定版本的文件。这样,您不必担心哪个版本适用于您的代码,因为通过分发锁文件,其他所有人都必须使用与您相同的依赖版本。pipenv 的开发人员打算让开发人员像这样使用它

于 2018-08-14T19:18:12.983 回答
0

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

于 2020-09-08T11:38:45.700 回答
0

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

pipenv lock --requirements
于 2020-12-31T12:31:35.543 回答
-2

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

pip3 freeze > requirements.txt
于 2019-02-02T01:55:57.203 回答