我試圖建立一個與Python的下PC \ example_nt源分佈使用MS編譯器
我複製example.c和setup.py的目錄C例如建築物上的窗戶一個Python模塊:\ mymod
當我運行C:\Python27\python.exe setup.py install
我得到錯誤....
error: Unable to find vcvarsall.bat
我做了一些在distutils的挖四周,發現這是微軟的Visual Studio,但只有我的9版本之後會有版本8.顯然,它試圖獲得版本9,因爲在C:\ Python27下編譯了python。
我修改了setup.py,並在最上面放置了以下內容。
from distutils import msvc9compiler
msvc9compiler.VERSION = 8.0
這樣我就能夠編譯後,得到了以下....
C:\mymod>C:\Python27\python.exe setup.py install
running install
running build
running build_ext
building 'example' 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 /Tcexample.c /Fobuild\temp.
win32-2.7\Release\example.obj
example.c
creating build\lib.win32-2.7
C:\Program Files\Microsoft Visual Studio 8\VC\BIN\link.exe /DLL /nologo /INCREME
NTAL:NO /LIBPATH:C:\Python27\libs /LIBPATH:C:\Python27\PCbuild /EXPORT:initexamp
le build\temp.win32-2.7\Release\example.obj /OUT:build\lib.win32-2.7\example.pyd
/IMPLIB:build\temp.win32-2.7\Release\example.lib /MANIFESTFILE:build\temp.win32
-2.7\Release\example.pyd.manifest
Creating library build\temp.win32-2.7\Release\example.lib and object build\te
mp.win32-2.7\Release\example.exp
C:\Program Files\Microsoft Visual Studio 8\VC\BIN\mt.exe -nologo -manifest build
\temp.win32-2.7\Release\example.pyd.manifest -outputresource:build\lib.win32-2.7
\example.pyd;2
running install_lib
copying build\lib.win32-2.7\example.pyd -> C:\Python27\Lib\site-packages
running install_egg_info
Removing C:\Python27\Lib\site-packages\example-1.0-py2.7.egg-info
Writing C:\Python27\Lib\site-packages\example-1.0-py2.7.egg-info
現在,當我運行C:\ Python27 \ python.exe,並嘗試import example
我得到以下...
ImportError: DLL load failed: The specified module could not be found.
我做錯了什麼? VS8不支持創建Python 2.7模塊嗎? 我該怎麼辦?
最終我需要爲某些Windows C庫構建綁定,以便我可以使用Python來擴展某些專有程序而不是C.我必須使用VS8來創建C擴展。那麼這些離我而去。
請諮詢。
感謝, 〜埃裏克
如果您必須使用VS8並希望使用Python 2.7,請使用VS8構建您自己的版本。不知道這可能會對您可能想要使用的任何其他第三方擴展有什麼影響,除非您可以重建它們。 – martineau 2010-11-18 20:12:39