让Pipenv在App运行所在的Virtualenv中运行

时间:2018-12-05 21:40:38

标签: pip virtualenv pipenv

我的Django应用程序在Virtualenv中工作。 我想切换到pipenv。但是,pipenv安装失败,并显示相关性错误。 鉴于该应用程序正在运行,我想所有的库都在Virtualenv中。

当通过Virtualenv + pip使应用程序运行时,我不得不解决库依赖性,但是能够并使它运行。转向pipenv的想法是避免在多成员团队设置中出现依赖性问题。

是否有一种方法可以告诉pipenv仅仅获取virtualenv中的库版本并继续使用它?

1 个答案:

答案 0 :(得分:0)

如果您有一个setup.py文件,则可以使用install_requires安装该文件及其相关性在pipenv install .中。更好的方法是使其成为可编辑的开发依赖项:pipenv install -e . --dev

然后,当您要使用应用程序pipenv install --dev时,将安装基本软件包和等效的setup.py develop

您还可以从requirements.txt文件创建Pipfile /虚拟环境。因此,您可以冻结一点,然后从需求文件中安装。

冻结依赖项

从工作的应用程序虚拟环境中,将依赖项导出到需求文件。

pip freeze > frozen-reqs.txt

然后使用pipenv创建一个新的虚拟环境,并根据冻结的要求进行安装。

pipenv install -r frozen-reqs.txt

然后进入Pipfile并开始删除除顶级依赖项之外的所有内容,然后重新锁定。同样,在任何可能的地方,都应避免固定需求,因为这会使依赖性解析变得更加困难。

您可以使用pipenv graphpipenv graph --reverse来解决这个问题。