混淆包装 c++ 库到 python
Confusion wrapping c++ library to python
我有一对 .cpp 和 .h 源文件,它们是我制作的 c++ 库的管理器(我猜也是包装器)。我想让 python 的人们使用这个管理器来处理我的图书馆。我听说过几种不同的方法可以将此库包装到 python 中,例如 cython
和 boost.python
,但我无法理解该过程。
如果我想让这个管理器在 python 中可用,我是否需要为 python 的每个版本以不同的方式包装它? (2.7 vs 3.4)我是否还需要为每个版本的每个操作系统以不同的方式包装它?所以 Windows 是 2.7/3.4 vs Linux 是 2.7/3.4?
关于您对该过程的困惑,只需按照您找到的任何包装库或评论中建议的任何教程进行操作即可。
If I want to make this manager usable in python, do I need to wrap it in a different way for each version of python? (2.7 vs 3.4)
是的。您也许可以将为 Python 3.4 编译的二进制模块加载到 Python 3.5 中,但它不太可能跨主要版本工作。
Do I also need to wrap it in a different way for each operating system for each version?
是的。正如您需要为不同的操作系统(以及可能的版本)和 CPU 架构编译 C++ 代码一样,Python 模块也不例外。但是,"wrap it in a different way" 仅表示 "compile for the target environment"。
我有一对 .cpp 和 .h 源文件,它们是我制作的 c++ 库的管理器(我猜也是包装器)。我想让 python 的人们使用这个管理器来处理我的图书馆。我听说过几种不同的方法可以将此库包装到 python 中,例如 cython
和 boost.python
,但我无法理解该过程。
如果我想让这个管理器在 python 中可用,我是否需要为 python 的每个版本以不同的方式包装它? (2.7 vs 3.4)我是否还需要为每个版本的每个操作系统以不同的方式包装它?所以 Windows 是 2.7/3.4 vs Linux 是 2.7/3.4?
关于您对该过程的困惑,只需按照您找到的任何包装库或评论中建议的任何教程进行操作即可。
If I want to make this manager usable in python, do I need to wrap it in a different way for each version of python? (2.7 vs 3.4)
是的。您也许可以将为 Python 3.4 编译的二进制模块加载到 Python 3.5 中,但它不太可能跨主要版本工作。
Do I also need to wrap it in a different way for each operating system for each version?
是的。正如您需要为不同的操作系统(以及可能的版本)和 CPU 架构编译 C++ 代码一样,Python 模块也不例外。但是,"wrap it in a different way" 仅表示 "compile for the target environment"。