首页 > 解决方案 > 让 pipenv 在应用程序工作的 Virtualenv 中工作

问题描述

我有我的 Django 应用程序在 Virtualenv 中工作。我想切换到 pipenv。但是, pipenv 安装失败并出现依赖错误。鉴于该应用程序正在运行,我猜所有的库都在 Virtualenv 中。

当通过 Virtualenv + pip 让应用程序工作时,我必须解决库依赖关系,但能够并让它工作。迁移到 pipenv 背后的想法是避免多成员团队设置中的依赖性问题。

有没有办法告诉 pipenv 只使用 virtualenv 中的库版本并继续使用它?

标签: pipvirtualenvpipenv

解决方案


如果你有一个setup.py文件,你可以用pipenv install .. 或者更好的是,使其成为可编辑的开发依赖项:pipenv install -e . --dev.

您还可以从 requirements.txt 文件创建 Pipfile/虚拟环境。所以你可以做一个 pip freeze ,然后从需求文件中安装。

冻结你的依赖

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

pip freeze > frozen-reqs.txt

然后使用 pipenv 创建一个新的虚拟环境,并从冻结的需求中安装。

pipenv install -r frozen-reqs.txt

然后进入Pipfile并开始删除除顶级依赖项之外的所有内容,然后重新锁定。此外,尽可能避免固定需求,因为这会使依赖关系解析变得更加困难。

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


推荐阅读