Простой сценарий Python должен работать на Windows Server без установленного Python.
Я использовал py2exe, который генерировал здоровый dist подкаталог с script.exe, который хорошо работает на локальной машине.
Однако, когда я выполняю его на сервере (Windows Server 2003 R2), это производит это:
Система не может выполнить указанную программу.
и ERRORLEVEL 9020.
Какие-либо идеи?
Я не нашел причину проблемы, но использование питона 2.5 с py2exe на том же скрипте прекрасно работало на сервере.
Наверное, что-то не так с py2exe под 2.6.
Возможно, отсутствуют некоторые необходимые библиотеки DLL. Попробуйте использовать depends.exe , чтобы определить, что может отсутствовать. Вероятно, это msvc-something-something.dll
Поскольку Python 2.6 построен на основе Visual Studio 2008, на целевом компьютере также должны быть библиотеки Visual Studio 2008, доступные из распространяемого пакета Visual C ++ 2008 пакет .
Я подтвердил, что в чистой сборке Windows XP или Server 2003 (ни одна из которых не имеет распространяемого пакета Visual Studio 2008) исполняемый файл py2exe Python 2.6 выйдет из строя с вышеупомянутой ошибкой, но после установки распространяемого пакета исполняемый файл запускается как обычно.
Чтобы py2exe работал, вы должны включить правильную версию Microsoft C runtime DLL в ваше приложение.
Для Python2.6 это MSVCR90.dll версии 9.0.21022.8, которую можно получить из Microsoft Visual C++ 2008 Redistributable Package:
ПРИМЕЧАНИЕ: SP1 этой программы установки содержит другую версию DLL и не будет работать.
В начале этого года я потратил некоторое время на подробное объяснение этого в учебнике по py2exe, поэтому я просто дам ссылку на него: http://www.py2exe.org/index.cgi/Tutorial#Step5