问题描述
我的包几乎全部用python编写。但是,某些功能基于使用subprocess
在python中运行的可执行文件。如果在本地设置软件包,则需要首先编译相应的C ++项目(由CMake管理),并确保在bin文件夹中创建了生成的二进制可执行文件。然后,我的python脚本可以调用这些实用程序。
root-dir
- bin
- binary_tool1
- binary_tool2
- cpp
- CMakeLists.txt
- tool1.cpp
- tool2.cpp
- pgk-name
- __init__.py
- module1.py
- module2.py
- ...
LICENSE
README
setup.py
我现在考虑创建一个可分发的python包,并通过PyPi/pip进行发布。因此,我需要将C ++项目的构建步骤包括到打包过程中。
到目前为止,我已经按照this tutorial中的描述创建了python包(没有二进制“有效载荷”)。我现在想知道如何扩展打包过程,以使C ++二进制文件与软件包一起分发。
问题:
-
setuptools
完全是为这种用例设计的吗? - 这种“混合”软件包方法是完全可行的还是二进制兼容性问题在意料之中?
我相信用C代码扩展纯Python包的规范方法是创建“二进制扩展名”(例如,使用distutils或如here所述)。在这种情况下,功能是由可执行文件提供的,而不是由可包装的C / C ++函数提供的。我想避免重新设计C ++项目以创建二进制扩展。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)