You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PyRun_String导入Python模块?语法错误问题求解

关于PyRun_String导入模块的问题

可以通过PyRun_String导入Python内置或第三方模块,但你当前使用Py_eval_input模式会触发语法错误——因为该模式仅支持执行单个表达式,而import属于语句范畴,不符合表达式的语法要求。

解决方法:

  • 将执行模式替换为Py_file_input(适配多行代码或完整语句块)或Py_single_input(适配单条语句)
  • 构造合法的import语句字符串传入函数,示例代码如下:
    const char* import_code = "import os\nimport numpy";
    PyRun_String(import_code, Py_file_input, dict1, dict2);
    
  • 若需将导入的模块存入指定字典(如dict2),可调整语句后直接从字典中取出模块对象:
    const char* import_code = "import os\nimport numpy as np";
    PyObject* os_module = PyDict_GetItemString(dict2, "os");
    PyObject* np_module = PyDict_GetItemString(dict2, "np");
    

额外注意:确保当前Python环境已安装目标第三方模块,且进程的Python路径能定位到这些模块,否则会触发导入异常,建议在代码中添加异常捕获逻辑。

内容的提问来源于stack exchange,提问作者user19095524

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 07:17:32