我的Django应用程序在Virtualenv中工作。 我想切换到pipenv。但是,pipenv安装失败,并显示相关性错误。 鉴于该应用程序正在运行,我想所有的库都在Virtualenv中。
当通过Virtualenv + pip使应用程序运行时,我不得不解决库依赖性,但是能够并使它运行。转向pipenv的想法是避免在多成员团队设置中出现依赖性问题。
是否有一种方法可以告诉pipenv仅仅获取virtualenv中的库版本并继续使用它?
答案 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 graph
和pipenv graph --reverse
来解决这个问题。