我正在开发一个 Python 库,它依赖于多个包。我正在努力寻找最直接的方法来管理具有以下约束的所有这些依赖项:
其中一些依赖项仅作为 conda 包提供(从技术上讲,源代码是可用的,但构建过程不是我想要的)
其他依赖项只能通过 pip 获得
我需要在可编辑或开发者模式下安装我自己的库
我经常需要使依赖项保持最新
我当前的初始安装设置:
新建conda环境
安装 conda-only 依赖项conda install ...
安装我的图书馆pip install -e .
此时,安装了一些包,现在由 conda 管理,其他包由 pip 管理。当我想更新我的环境时,我需要:
更新环境的 conda 部分conda update --all
手动更新环境的pip部分
我的问题是这是不稳定的:当我更新所有 conda 包时,它确保它管理的包的一致性。但是,我不能保证整个环境保持一致,我刚刚意识到我缺少一些更新,因为我忘记检查环境的 pip 部分的更新。
最好的方法是什么?我想过:
使用 conda 的pip 互操作性功能:这似乎可行,但我得到了一些可疑的结果,可能是因为我使用了extras_require
由于 pip 可以看到 conda 包,因此初始安装是一致的,这意味着我可以在需要更新时简单地重新安装所有内容。这有效但并不十分优雅。
幕布斯7119047
相关分类