Используйте интерпретатор python, упакованный с py2exe - PullRequest
4 голосов
/ 12 июля 2011

Привет, ребята, это мой первый вопрос по stackOverflow и, к сожалению, он странный.

У меня есть скрипт на python, который я хочу распространить в Windows, где люди могут не установить python.Поэтому я использую py2exe.Проблема в том, что в сценарии я запускаю другие сценарии Python, используя подпроцесс, для выполнения которого требуется интерпретатор Python.Поскольку у меня не установлен интерпретатор Python в Windows, могу ли я как-то проигнорировать интерпретатор и обойти проблему?Можно ли как-нибудь вызвать интерпретатор python, упакованный py2exe?

1 Ответ

1 голос
/ 12 июля 2011

Возможно, это проще, чем вы думаете: вместо запуска подпроцессов используйте встроенную команду eval() для выполнения сценариев.

[EDIT] Для перенаправления stdio, замените sys.stdout / sys.stderr буферами или чем-то еще, поддерживающим «write ()».

Чтобы восстановить исходные значения, модуль sys предлагает __stdout__,и т. д.

[EDIT2] Я не пробовал этого, но это может работать: добавьте "python.exe" в набор файлов, которые создает py2exe.

Изосновной код, скопируйте все файлы, созданные py2exe + python.exe во временную директорию.Затем добавьте все свои скрипты.

Теперь запустите новый интерпретатор python с небольшим скриптом, который добавляет временную папку и library.zip к sys.path

Примечание: Python не долженбыть «установленным» как приложение Windows.На самом деле, вы можете просто скопировать все файлы на новое место.Пока путь поиска правильный, это работает.

...