首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何禁止包被添加到Pipenv.lock并由Pipenv安装?

我如何禁止包被添加到Pipenv.lock并由Pipenv安装?
EN

Stack Overflow用户
提问于 2019-09-16 15:00:22
回答 1查看 143关注 0票数 2

有两个包提供了一个名为jsonfield的模块

不幸的是,我们有依赖于两个包和两个包的依赖关系,虽然可以交换,但是将数据以不同的方式存储到数据库。这将导致怪怪的,很难抓到虫子。而且,不幸的是,Pipenv在安装依赖项时没有任何确定性的操作顺序。有时安装django-jsonfield,有时安装jsonfield。这意味着,有时,我们的应用程序会随机中断,因为安装了jsonfield而不是django-jsonfield

是否有一种方法可以禁止将django-jsonfield添加到Pipenv.lock中,以便只安装jsonfield

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-17 22:53:19

从外表上看,你的处境很棘手.除了每次生成Pipfile.lock之后手动编辑之外,我目前所知道的没有干净的解决方案。

你真的应该和罪魁祸首项目的开发者谈谈:

  • jsonfielddjango-jsonfield都应该为他们的顶级包商定不同的名称。
  • 或者依赖于jsonfielddjango-jsonfield的项目应该就这两个项目中的一个达成一致,而放弃另一个。

您可能对这一讨论感兴趣,并最终加入了:https://github.com/pypa/packaging-problems/issues/154。在您的情况下特别感兴趣的是,pip允许在安装新包时覆盖已经安装的包。

未测

您可以尝试在不需要的依赖项上设置一个不太可能的标记:

代码语言:javascript
复制
django-jsonfield = { markers="python_version < '2'" }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57959565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档