我想用swig为python构建一个C++扩展。我按照下面的说明和其他人的T,似乎无法让我的扩展加载。所有可用的swig + python + mingw编译信息过时了吗?
我在MinGW网站的“我如何创建Python扩展?”下跑过这篇文章。
我还发现,这些教程:
http://boodebr.org/main/python/build-windows-extensions http://www.mail-archive.com/[email protected]/msg04655.html http://oldwiki.mingw.org/index.php/Python%20extensions
我使用Panda3d-1.7.0构建反对 - 熊猫在win32上运行python2.6.4(MSC v.1500编译)。我正在使用MinGW gcc/g ++(GCC)3.4.5进行编译。
我注意到,当我运行下面的命令setup.py:
python setup.py build -cmingw32
gcc.exe第一次运行,则g ++ exe文件来构建PYD。 g ++正在链接:-lpython26 -lmsvcr90
她构建并链接的不错(没有错误),但是,当我将_extension.pyd和extension.py文件复制到Panda3d-1.7.0 \ python \ Lib \ site -packages并运行命令行>蟒蛇-c“导入扩展”,Python的转储如下:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Panda3D-1.7.0\python\Lib\site-packages\extension.py", line 25, in <module>
_bullet = swig_import_helper()
File "C:\Panda3D-1.7.0\python\Lib\site-packages\extension.py", line 21, in swig_import_helper
_mod = imp.load_module('_extension', fp, pathname, description)
ImportError: DLL load failed: The specified module could not be found.
任何提示或指针?谢谢!
CT
感谢您的协助。依赖walker指出一些lib *。我链接的文件在我的路径中缺少它们各自的dll,我将稍后使用它,当解决问题时我会与您取得联系。 – 2010-10-05 01:21:57
刚刚检查了一切,它看起来像是我的问题 - gcc/g ++链接到一个lib * .a,它没有它的伴侣dll在我的%PATH% - 再次感谢建议和href的依赖沃克,拯救了我的一天! – 2010-10-05 01:26:10
@ct,还要注意,可以编写依赖项步行者脚本。例如,在构建发行版或安装程序之前,我已将其作为我的常规测试套件的一部分,以确保我已打包了所有需要的DLL。这是一个方便的工具。很高兴有帮助。 – RBerteig 2010-10-05 07:19:04