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 install或pipenv install --dev应该运行(如果存在开发依赖项)。这将在Pipefile中安装所有依赖项。将依赖项放入requests.txt,然后使用pip可以正常工作,但这并不是必须的。对于大多数人而言,使用pipenv的全部目的是避免管理要求。txt或使用pip。
编辑:如果virtualenv已经被激活,您也可以使用pipenv sync或pipenv sync --dev以获得相同的效果。
我有类似的问题。对我来说,我退出了 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。