【发布时间】:2015-05-19 17:16:21
【问题描述】:
在过去的几天里,我一直在努力导入 SWIG 生成的模块。我正在使用 Python 3.4.1 和 SWIG 3.0.5。
我的接口 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 有问题。我想我做错了某种设置,但如果有人有任何建议,他们将不胜感激!
【问题讨论】:
标签: python c++ python-3.x swig