首页 > 解决方案 > 有没有办法将 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 要求。

到目前为止,我看到的解决方案是:

  1. 为我的“ C ”工具创建一个柯南包并在“ B ”中添加要求
  2. 手动处理在“ B ”conanfile.py中安装的“ C ”包

我想避免为 python 包添加柯南包,因为 python 已经有一个包管理系统,我的包将在 python 索引服务器上可用。

我也会避免添加代码来处理 python 包依赖项。

有没有人知道柯南是否可以在一个简单的问题上做到这一点?

谢谢

亚历克斯

标签: pythonconanpackage-management

解决方案


由于柯南配方也是 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,以获取更多信息。

问候!


推荐阅读