【发布时间】:2014-07-27 16:43:57
【问题描述】:
我工作中的某个人使用PyQt4 编写了一些python 模块。我写了一个Jython 应用程序,它应该允许Python 模块访问我们API 的Java 绑定,但我没有意识到Jython 不能使用ctypes,因此整个应用程序基本上没用。
我正在努力寻找一个解决方案,说明如何将我们的 API 暴露给他的 Python 模块。我们的 API 是 C 并且具有 C++ 绑定(以及 Java 和 Perl),所以我认为最好的解决方案是将其中一个 C/C++ API 暴露给他的 Python 模块。
而不是使用 ctypes、sig、swig 等为 Python 做一个 C/C++ 包装器(我预计会做很多工作)。我想也许我可以让他使用 Cython。根据我一直在阅读的内容,您无需做太多工作即可将您的 Python 代码转换为 Cython,因此我可以为他创建一些测试示例,演示如何将他的 Python 模块转换为 Cython,并向他展示如何访问我们的C API。
但是是否甚至可以同时使用 Cython 和 PyQt4。 似乎没有多大意义,Qt 是 C 或 C++ 而 PyQt 是使用 Qt 的绑定或包装器使用 Python 然后我们使用 Cython 将 Python 代码更改为 C 代码。但是,尽管它没有意义,并且可能会减慢一切速度,但它甚至可能吗?如果可能的话,我将提供这个作为临时解决方案。
【问题讨论】:
-
为什么不试试看呢?
-
好点,我计划今天这样做,但我想在我花更多时间学习 Cython 之前从社区获得一些建议。在将 C 和 Python 结合使用的领域中似乎有无穷无尽的选择,要找到最佳方法是压倒性的。
-
对您的结果发表评论或解决方案更新怎么样?
-
@Nelson 我在暑假的实习期间从事这项工作。我还没来得及解决问题,实习就结束了。