平台:Windows 7,64位(x64),Visual Studio 2008
我选择了Python& Swig绑定作为应用程序的脚本环境。
作为原型,使用main()创建一个简单的VS解决方案,初始化Python(Py_Initalize,Py_setPyHome等)&执行test.py.在同一个解决方案中创建了另一个项目,它是一个简单类的DLL。使用SWIG来包装这个类。这个DLL是_MyClasses.pyd。 test.py创建了我的类的对象&调用其成员函数。
所有这一切都像发布模式中的魅力。但是在调试模式下不起作用(甚至尝试在笔记本电脑上敲我的头;-))。
我的作品输出如下(在发布和调试中):
x64
-debug
- _MyClasses.pyd
- MyClasses.py
- test.exe
- test.py
- python26.dll
- python26_d.dll
请注意,调试版本与python26_d.lib相关联。不得不为此自己构建python!
test.py
import MyClasses
print "ello"
m = MyClasses.Male("John Doe", 25)
print m.getType()
男性是C ++类。
The problem:
Traceback (most recent call last):
File "test.py", line 6, in <module>
import MyClasses
File "...\x64\Debug\MyClasses.py", line 25, in <module>
_MyClasses = swig_import_helper()
File "...\x64\Debug\MyClasses.py", line 17, in swig_imp
ort_helper
import _MyClasses
ImportError: No module named _MyClasses
[15454 refs]
我习惯Makefile&amp;我是Visual Studio的新手。我不知道谁是罪魁祸首:Swig,Python的调试版本,Visual Studio,我的愚蠢。
提前谢谢你。这将是一个很大的帮助。
答案 0 :(得分:1)
好吧 - 找到了。调试输出dll必须命名为xxx_d.pyd !!在上面的例子中,它将是_MyClasses_d.pyd