python - pipenv 的用例是什么?

标签 python pipenv

我正在阅读这个名为 pipenv 的新工具,但不明白这个工具的用例是什么。

  1. 要创建一个包,我仍然需要维护 setup.pyrequirements.txt
  2. 要创建开发环境,我很可能仍然需要 toxvirtualenv
  3. 要创建包或轮子,我仍然需要使用 pip,因为 pipenv devs don't care about this feature

那么使用不同语法的另一个工具和配置文件有什么意义呢? pipenv解决什么问题?

最佳答案

setup.pytoxrequirementsvirtualenv等所有功能都很关键对于分发需要针对多个 Python 版本和可能的多个版本的需求构建和测试的库的人。

docs mention this ,但我会重申。 Pipenv 面向应用程序开发人员和服务提供商。在那些情况下,您通常构建一个单一的配置,并积极更新您的版本集。此外,您需要能够轻松回滚到以前的版本集。

requirements.txt 是版本固定,因此您可以回滚,但 pip 从不强制执行版本一致性,因此您可以构建一个 requirements.txt有相互矛盾的版本。它是 Python,所以大多数时候你可以摆脱它,但拥有一致的版本确实可以缓解这类问题。

pip-tools可以构建一致的版本集,但您现在要处理三个独立的实用程序:pippip-toolsvirtualenv。如果每个人都始终小心翼翼地运行所有这三个以保持最新状态,那就太好了,当然他们没有这样做。

pipenv 添加的是将所有这三个方面的管理结合起来并始终强制执行版本一致性。

如果你做一些像git checkout这样简单的事情,你所要做的就是运行pipenv sync --dev来更新你的virtualenv。

使用 pip,您必须完全清除 virtualenv 并重新运行 pip install,因为 pip 不会删除现有包。

如果您将 Pipfile 设置为具有 "yourpackage"= {​​path=".", editable=true},那么您可以在 setup.py 中更新需求> 和 pipenv update 将确保您的 virtualenv 得到相应更新,否则会报告错误。

需要明确的是,没有 pipenv 单独处理的用例;你可以用其他工具来做。但它确实有一个受众,即应用程序开发人员,并且它通过为用户提供更加一致的体验而与众不同。我还发现,在实践中,它对库开发也很有帮助,因为测试套件本身就是一个应用程序。

关于python - pipenv 的用例是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50109299/

相关文章:

python - 按特定顺序操作列表和数组

python - 打包一个使用多个python版本的项目

python - 如何解决传递依赖冲突问题?

python - Pymongo 如何设置 read_preference

python - 我从 GridSearchCV 获得的 R^2 分数与从 cross_val_score 获得的 R^2 分数非常不同,为什么? (sklearn、Python)

python - 属性错误: 'module' object has no attribute 'tk'

python - 为什么一个模块的 Pipfile.lock 中有两个散列?

python - 无法使用 pipelinenv 安装 PyPi 库

python - 我无法在 Windows 10 中使用 pipenv 和 bash 在 VSC 中使用 pylint

python - 为 Django Web 应用程序选择正确的数据库系统