在过去的几天里,我一直在努力导入一个SWIG生成的模块。我正在使用Python 3.4.1和SWIG 3.0.5。SWIG +没有DLL的Python
我设置我的界面API.i文件,如下所示:
%module Root
%{
#include "Root.h"
%}
%include "Root.h"
没什么特别的头,因为我只是想获得一些事情。将生成一个API_wrap.cxx
文件,并且Root.py
文件也会生成。到现在为止还挺好。
现在,基于以下网站:https://docs.python.org/2/faq/windows.html#how-can-i-embed-python-into-a-windows-application他们暗示我可以通过以下操作直接加载模块(都在同一个EXE,而不需要有一个单独的DLL):
Py_Initialize();
PyInit__Root();
PyRun_SimpleString("import Root");
如果我还没有Root.py文件,导入工作正常,但是然后我失去了影子/代理类(其中,我猜测)。如果我确实有Root.py文件,我得到以下错误:
“导入无法找到模块,或无法在模块中找到名称。”
我注意到如果我在Root.py文件中写了乱码,我得到一个语法错误,这很明显生成的Root.py有问题。我想有些设置我做错了,但如果有人有任何建议,他们将不胜感激!