Ich versuche, das Beispiel zu erstellen, die unter PC \ example_ntein Python-Modul auf Windows mit MS-Compiler bauen
example.c und setup.py in ein Verzeichnis CI kopiert mit der Source-Distribution von Python kommt: \ mymod
Wenn ich laufen C:\Python27\python.exe setup.py install
ich den Fehler ....
error: Unable to find vcvarsall.bat
ich habe in distutils einige Graben um und sah, dass es nach der Version 9 von Microsoft Visual Studio würde, aber ich nur habe Version 8. Anscheinend versucht es Version 9 zu bekommen, wegen dem was das Python unter C: \ Python27 kompiliert wurde.
Ich habe setup.py geändert und setzen Sie das folgende ganz oben.
from distutils import msvc9compiler
msvc9compiler.VERSION = 8.0
Nachdem Sie das getan ich in der Lage war, zu kompilieren und bekam die folgende ....
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
Nun, wenn ich C laufen: \ Python27 \ python.exe und versuchen zu import example
erhalte ich die folgende ...
ImportError: DLL load failed: The specified module could not be found.
Habe ich etwas falsch gemacht? Wird VS8 zum Erstellen von Python 2.7-Modulen nicht unterstützt? Was soll ich tun?
Schließlich muss ich Bindungen für einige Windows C-Bibliothek erstellen, so dass ich Python verwenden kann, um einige proprietäre Programm statt C zu erweitern. Ich muss VS8 zum Erstellen der C-Erweiterung verwenden. Also, wo bleibt das?
Beratung bitte.
Danke, ~ Eric
Wenn Sie * müssen * VS8 verwenden und Python 2.7 wollen, bauen Sie Ihre eigene Version mit VS8. Sie sind sich nicht sicher, welche Auswirkungen dies auf andere Erweiterungen von Drittanbietern haben könnte, die Sie verwenden möchten, es sei denn, Sie können sie auch neu erstellen. – martineau