PyImport_ImportModule总是返回NULL,可能由如下原因引起:
- 一般程序中有这行代码:
PyRun_SimpleString("sys.path.append('./')");
,指明py文件要放在exe跟路径下;如果是VS调试模式,则需放在代码目录下。如果路径不对,会返回NULL。 - 如果py文件所在路径没有问题,可能是python代码问题,import引入库不存在导致的。
第一种情况,网上都由说明,说说第二种情况吧。
假如你要运行的python代码如下:
import requests
import time
import execjs
print('hello word!')
time
是python内置库,requests
和execjs
均为外部库,则需要用pip工具安装。
- 先找到pip.exe所在目录,一般在安装目录的Scripts下,将路径添加到系统环境变量;
- 使用
pip install requests
安装requests库; - 使用
pip install PyExecJS
安装execjs库;