2011-02-09 149 views
1

我想學習python擴展,並創建了簡單的noddy example c文件和setup.py。無法導入python擴展

python.exe setup.py build給我:

running build 
running build_ext 
building 'noddy' extension 
creating build 
creating build\temp.win32-2.7 
creating build\temp.win32-2.7\Release 
C:\Program Files\Microsoft Visual Studio 8\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -IC:\python27\include -IC:\python27\PC /Tcnoddy.c /Fobuild\temp.win32-2.7\Release\noddy.obj 
noddy.c 
creating build\lib.win32-2.7 
C:\Program Files\Microsoft Visual Studio 8\VC\BIN\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:C:\python27\libs /LIBPATH:C:\python27\PCbuild /EXPORT:initnoddy build\temp.win32-2.7\Release\noddy.obj /OUT:build\lib.win32-2.7\noddy.pyd /IMPLIB:build\temp.win32-2.7\Release\noddy.lib /MANIFESTFILE:build\temp.win32-2.7\Release\noddy.pyd.manifest 
Creating library build\temp.win32-2.7\Release\noddy.lib and object build\temp.win32-2.7\Release\noddy.exp 
C:\Program Files\Microsoft Visual Studio 8\VC\BIN\mt.exe -nologo -manifest build\temp.win32-2.7\Release\noddy.pyd.manifest -outputresource:build\lib.win32-2.7\noddy.pyd;2 

我然後運行python.exe setup.py install,這給了我:

running install 
running build 
running build_ext 
running install_lib 
copying build\lib.win32-2.7\noddy.pyd -> C:\python27\Lib\site-packages 
running install_egg_info 
Writing C:\python27\Lib\site-packages\noddy-1.0-py2.7.egg-info 

但隨後,在空閒狀態,

>>> import noddy 

Traceback (most recent call last): 
    File "<pyshell#0>", line 1, in <module> 
    import noddy 
ImportError: DLL load failed: The specified module could not be found. 

所以,我在做什麼錯誤?無可否認,我非常困惑。

+1

可能是一個愚蠢的問題,但是當你試圖「導入」它時,你確定你使用的是Python 2.7嗎? – 2011-02-09 21:38:07

+0

這是一個乾淨的2.7安裝在一臺以前從未有過python的機器上。有沒有一種方法可以從Idle調用來給出版本? – Nate 2011-02-09 21:46:18

回答

3

使用Visual Studio 2008編譯器構建模塊。

VS8是Visual Studio 2005,用該版本編譯的模塊與Python 2.7不兼容(同樣適用於用Visual Studio 2010 btw編譯的模塊)。