Как запустить программу Python на сервере Windows без установки Python? - PullRequest
4 голосов
/ 03 ноября 2011

Итак, я написал скрипт на Python, который делает некоторые простые вещи. Первоначально он собирался работать на сервере Unix, но из-за дрянных настроек сетевой безопасности, которые TPTB отказываются изменять, нам нужно запустить его на сервере Windows. Однако администраторы указанного сервера Windows отказываются делать что-либо полезное, например устанавливать Python.

Какие есть варианты запуска скрипта Python в Windows без Python?

Рассмотрение 1:

Что-то вроде Py2Exe - Я нашел это после быстрого поиска в Google, и это кажется многообещающим. Из того, что я могу сказать, он сгенерирует кучу файлов, но мы можем просто скопировать этот каталог на наш компьютер с Windows, и он будет полностью изолирован и не будет иметь никаких внешних зависимостей. У кого-нибудь есть понимание того, насколько хорошо это работает? Очевидно, это зависит от моего скрипта Python, но, к счастью, этот скрипт довольно прост и использует только встроенные библиотеки Python, такие как urllib2 и urlparse.

Рассмотрение 2:

Можно предположить, что на сервере Windows установлена ​​по крайней мере какая-то версия .NET Framework, что напоминает IronPython. Я никогда не использовал это раньше, но я всегда хотел. Из того, что я могу сказать, он скомпилирует код Python в CLS-совместимый код IL, который может быть запущен непосредственно в среде выполнения .NET. Однако требуется ли для этого на сервере установка дополнительных библиотек .NET? Могу ли я просто связать эти библиотеки с моей программой? Или же требуется переписать мой скрипт Python для вызова определенных классов .NET Framework вместо использования таких вещей, как urllib2 или urlparse?

Спасибо!

PS - Ироническая часть: На самом деле я почти не знаю Python и я эксперт по .NET, но я написал скрипт на Python, потому что мне сказали, что он будет работать на сервере Unix. Если бы я знал, что мы в конечном итоге запустим это на сервере Windows, я бы написал об этом на C # примерно в 1/10 времени. Сбой.

1 Ответ

4 голосов
/ 03 ноября 2011

Они вообще позволят вам копировать исполняемые файлы на сервер?Если это так, то вы сможете выполнить установку Python без прав администратора или использовать Portable Python , который можно просто скопировать в папку без какой-либо установки.

С Py2exe все в порядке, но это значит, что вы должны встраивать скрипт в новый исполняемый файл каждый раз, когда обновляете его.Кроме того, Py2exe имеет немного больше времени запуска, чем интерпретатор Python, потому что он должен извлекать библиотеки Python во временную папку при каждом запуске;это имеет значение, конечно, если вы часто запускаете свой скрипт.

...