如何在虚拟环境中从复制的pipfile安装依赖项?

Cal*_*ing 8 python pip virtualenv pipenv

当我开始克隆使用pipenv的git项目时,就会出现问题,因此它具有Pipfile + Pipfile.lock。我想在项目中使用虚拟环境,以便运行pipenv shell。现在,我创建了一个虚拟环境,并且位于虚拟环境中。该项目显然有很多依赖项(列在Pipfile中)。我不想一一遍遍Pipfile中的大列表并使用来安装它们pipenv install <package_name>。是否有pipenv / pip命令从我已经拥有的Pipfile安装所有软件包?还是我需要与运行环境不同地设置环境pipenv shell?注意:pip freeze不返回任何内容。

Sou*_*rri 13

理想情况下,我们鼓励您拥有一个requirements.txt包含通过 pip 安装所需的所有包的文件。您可以通过执行以下操作来创建此文件:

pip freeze > requirements.txt
Run Code Online (Sandbox Code Playgroud)

您可以将 Pipfile 和 Pipfile.lock 转换为 requirements.txt。看看这个

pipenv lock -r
Run Code Online (Sandbox Code Playgroud)

之后,您可以通过执行以下操作在 python 虚拟环境中安装所有模块:

pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)

希望我回答了你的问题。


Ran*_*ing 13

正确回答这个问题的是,pipenv installpipenv install --dev应该运行(如果存在开发依赖项)。这将在Pipefile中安装所有依赖项。将依赖项放入requests.txt,然后使用pip可以正常工作,但这并不是必须的。对于大多数人而言,使用pipenv的全部目的是避免管理要求。txt或使用pip。

编辑:如果virtualenv已经被激活,您也可以使用pipenv syncpipenv sync --dev以获得相同的效果。


Fat*_*imi 9

用于 pipenv sync安装 Pipfile.lock 中指定的所有软件包。


mir*_*iad 5

我有类似的问题。对我来说,我退出了 virtualenv 并运行

pipenv --three sync
Run Code Online (Sandbox Code Playgroud)

它起作用了。

据我所知,在我的例子中,这个想法是使用 python 3 创建一个新的虚拟环境。如果您使用的是 python 2,上面的命令将被编辑为:

pipenv --two
Run Code Online (Sandbox Code Playgroud)

同步命令将所有依赖项从 Pipfile.lock 复制到新的 virtualenv。