python - 有没有办法将 python 依赖项添加到柯南包
问题描述
我正在使用 C/C++ 和 Python 中的多个库和包设置一个项目。
我想为 C/C++ 包设置一个二进制存储库,为 python 包设置一个 python 包索引服务器。
我偶然发现了 conan 和 artefactory 来处理 C/C++ 库之间的依赖关系,但我找不到添加标准 python 包依赖关系的明确解决方案。
例如,我的项目“ A ”(C/C++)依赖于“ B ”(C/C++),其中包含使用“ C ”工具(Python)生成的代码。
我想将“ B ”的要求设置为“ C ”作为我的“ C ”工具包的特定分发的 pip 要求。
到目前为止,我看到的解决方案是:
- 为我的“ C ”工具创建一个柯南包并在“ B ”中添加要求
- 手动处理在“ B ”conanfile.py中安装的“ C ”包
我想避免为 python 包添加柯南包,因为 python 已经有一个包管理系统,我的包将在 python 索引服务器上可用。
我也会避免添加代码来处理 python 包依赖项。
有没有人知道柯南是否可以在一个简单的问题上做到这一点?
谢谢
亚历克斯
解决方案
由于柯南配方也是 Python 脚本,因此您可以直接从配方运行 pip:
def system_requirements(self):
import pip
if hasattr(pip, "main"):
pip.main(["install", "colorama"])
else:
from pip._internal import main
main(['install', "colorama"])
系统要求是最好的地方,因为它涉及到一个不是柯南包的必需包。如果你有一些基于发行版添加的条件,你也可以使用 distro_info。
在文档中查看here,以获取更多信息。
问候!
推荐阅读
- swift - 在可编辑的 NSTextView 中链接(如 Apple 的注释)
- postgresql - 如何在 sqlalchemy 的 ORM 中使用 postgresql 的 jsonb_each 函数
- c# - 对象跟随手指仅当它在屏幕上滑动时
- javascript - Vue 和 Vuetify 中没有初始视图模型的反应式表单
- google-bigquery - 是否可以从 bigquery 中提取表创建 DDL 语句?
- javascript - 为什么这个 javascript 在每次点击时都会变得越来越慢?
- icons - Font Awesome 5:可以更改图标的背景颜色,使其不会在边框外流血?
- python - Python - 比较数字。我正在将 1 与 1 进行比较,但它失败了 - 请参阅代码 - 谁能告诉我问题出在哪里?
- google-cloud-platform - Google Cloud Datastore:index.yaml 文件的 CI/CD
- java - 如何使用静态方法将队列复制到其他队列.Schildt