【发布时间】:2020-05-15 17:13:51
【问题描述】:
我有a C++ application,它使用 Python 的机器学习,我目前的方法是使用 pyInstaller 使单个文件可执行,然后从 C++ 运行它。这有明显的缺点,尤其是应用程序间的通信。目前我正在使用一个中间 JSON 文件来相互交谈,但这对于我未来的需求来说非常不理想。这样做的美妙之处在于,它可以在所有主要平台上轻松运行。
第 1.6 节。来自Python's manual 阅读“类Unix系统下的编译和链接”
这是否意味着 Python 解释器将在我的应用程序二进制文件中,并且目标系统不需要安装 Python,因为程序将始终使用嵌入式解释器?如果是这样,python库是什么?我可以嵌入整个 conda 环境吗?
另外,还有什么:
"类 Unix 系统下的(...)"
这是否意味着这种方法不是多平台的?
提前致谢。
【问题讨论】:
-
在任何重要程序中嵌入解释器所带来的问题和复杂性很容易被低估。如果您这样做的唯一原因是为了简化 IPC,您可能需要查找如何从 C 中调用 Python 函数的示例。有很多完美的 IPC 解决方案,它们的效率并不会降低很多并且更容易使用比起那个来说。去过那里,希望我没有。
标签: python c++ python-embedding