C++;Swig-Python(C+;+;)可以在发行版中工作,但不能在调试中工作

C++;Swig-Python(C+;+;)可以在发行版中工作,但不能在调试中工作,python,debugging,swig,Python,Debugging,Swig,平台:Windows7,64位(x64),VisualStudio2008 我选择Python&Swig绑定作为应用程序的脚本环境 作为原型,使用main()创建了一个简单的VS解决方案,该解决方案初始化Python(Py_Initalize、Py_setPyHome等)并执行test.Py。在同一个解决方案中,创建了另一个项目,它是一个简单类的DLL。使用SWIG来包装这个类。此DLL是_MyClasses.pyd。py创建类的对象并调用其成员函数 所有这些在发布模式下都像一个符咒。但在调试模

平台:Windows7,64位(x64),VisualStudio2008

我选择Python&Swig绑定作为应用程序的脚本环境

作为原型,使用main()创建了一个简单的VS解决方案,该解决方案初始化Python(Py_Initalize、Py_setPyHome等)并执行test.Py。在同一个解决方案中,创建了另一个项目,它是一个简单类的DLL。使用SWIG来包装这个类。此DLL是_MyClasses.pyd。py创建类的对象并调用其成员函数

所有这些在发布模式下都像一个符咒。但在调试模式下不工作(甚至试着用头撞笔记本;-))

我的工作输出如下所示(在发行版和调试版中):

注意,调试版本是针对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]
问题:
回溯(最近一次呼叫最后一次):
文件“test.py”,第6行,在
导入MyClass
文件“…\x64\Debug\MyClasses.py”,第25行,在
_MyClasses=swig\u import\u helper()
文件“…\x64\Debug\MyClasses.py”,第17行,在swig\u imp中
帮手
导入我的类
ImportError:没有名为_MyClass的模块
[参考文献15454]
我习惯于制作文件&我是visualstudio的新手。我不知道谁是罪魁祸首:Swig,Python的调试版本,visualstudio,我的愚蠢


先谢谢你。这将是一个很大的帮助。

好的-找到了。调试输出dll必须命名为xxx_d.pyd!!在上述情况下,它将是_MyClasses_d.pyd

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]