Возможно, это проще, чем вы думаете: вместо запуска подпроцессов используйте встроенную команду eval()
для выполнения сценариев.
[EDIT] Для перенаправления stdio, замените sys.stdout / sys.stderr буферами или чем-то еще, поддерживающим «write ()».
Чтобы восстановить исходные значения, модуль sys
предлагает __stdout__
,и т. д.
[EDIT2] Я не пробовал этого, но это может работать: добавьте "python.exe" в набор файлов, которые создает py2exe.
Изосновной код, скопируйте все файлы, созданные py2exe + python.exe во временную директорию.Затем добавьте все свои скрипты.
Теперь запустите новый интерпретатор python с небольшим скриптом, который добавляет временную папку и library.zip
к sys.path
Примечание: Python не долженбыть «установленным» как приложение Windows.На самом деле, вы можете просто скопировать все файлы на новое место.Пока путь поиска правильный, это работает.