Я пытаюсь построить пример, который приходит с распределением источника питона под PC \ example_ntстроит модуль питона на окнах с помощью мс компилятор
я скопировал example.c и setup.py в директории C: \ MyMod
Когда я бегу C:\Python27\python.exe setup.py install
я получаю ошибку ....
error: Unable to find vcvarsall.bat
Я сделал некоторые копаться в Distutils и увидел, что это происходит после того, как версия 9 Microsoft Visual Studio, но я только есть версия 8. Видимо, он пытается получить версию 9 из-за того, с чем был скомпилирован python под C: \ Python27.
Я модифицировал 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