gpt4 book ai didi

python - 如何禁止将软件包添加到 Pipenv.lock 并由 Pipenv 安装?

转载 作者:行者123 更新时间:2023-12-01 00:33:54 26 4
gpt4 key购买 nike

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

不幸的是,我们有依赖于这两个包的依赖项,这两个包虽然可以互换,但以不同的方式将数据存储到数据库中。这导致 weird and hard to catch bugs 。另外,不幸的是,Pipenv 在安装依赖项时没有任何确定的操作顺序。有时安装django-jsonfield,有时安装jsonfield。这意味着有时我们的应用程序会随机中断,因为安装了 jsonfield 而不是 django-jsonfield

有没有办法可以禁止将 django-jsonfield 添加到 Pipenv.lock 中,以便仅安装 jsonfield

最佳答案

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

您确实应该与罪魁祸首项目的开发人员交谈:

  • jsonfielddjango-jsonfield 应该就其顶级包的不同名称达成一致。
  • 或者依赖于 jsonfielddjango-jsonfield 的项目应该就两者之一达成一致,而放弃另一个。

您可能对此讨论感兴趣并最终做出权衡: https://github.com/pypa/packaging-problems/issues/154 。您的案例特别令人感兴趣的是,pip 允许在安装新软件包时覆盖已安装的软件包。

<小时/>

未经测试:

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

django-jsonfield = { markers="python_version < '2'" }

关于python - 如何禁止将软件包添加到 Pipenv.lock 并由 Pipenv 安装?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57959565/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com