如何在 C++ 程序将使用的 Python 脚本中导入 cpython 模块?

Posted

技术标签:

【中文标题】如何在 C++ 程序将使用的 Python 脚本中导入 cpython 模块?【英文标题】:How do I import a cpython module inside a Python script which will be used by a C++ program? 【发布时间】:2017-02-27 05:38:14 【问题描述】:

我有一个 script1.py,我在其中导入 binascii。

import binascii

当我尝试在使用 PyImport_ImportModule() 的 C++ 程序中使用它时,我收到以下错误。

   import binascii
ImportError: No module named 'binascii'
Error in sys.excepthook:
Traceback (most recent call last):
 File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
   from apport.fileutils import likely_packaged, get_recent_crashes
 File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
   from apport.report import Report
 File "/usr/lib/python3/dist-packages/apport/report.py", line 12, in <module>
   import subprocess, tempfile, os.path, re, pwd, grp, os, time
 File "/usr/lib/python3.5/subprocess.py", line 437, in <module>
   import _posixsubprocess
ImportError: No module named '_posixsubprocess'

当我从终端执行以下操作时,它可以工作。

python3.5 -c "import binascii"

那么我如何在 C++ 程序中使用这些 cpython 模块呢? 提前致谢。

【问题讨论】:

【参考方案1】:

您在安装 Python 时可能做错了什么。试试这个:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-serial

【讨论】:

谢谢。我尝试了您的步骤,但没有成功。我在另一台可以运行的机器上尝试了我的程序。所以看来你对 Python 安装有问题是正确的。

以上是关于如何在 C++ 程序将使用的 Python 脚本中导入 cpython 模块?的主要内容,如果未能解决你的问题,请参考以下文章

将 C++ 程序输出与 Python 脚本链接

将python脚本添加到c ++项目

将Python脚本的输出链接到C ++程序的输入

如何从 C++ 程序运行 python 脚本?

从 c++ 代码运行 python 脚本并在 c++ 中使用 pythons 输出

从 Visual Studio C++ 解决方案调用 Python 脚本