Я написал программу на Python 3, которая полагается на другую программу в Python 2.7 для некоторых основных задач. Он работает без сбоев на gnunux, поскольку в большинстве дистрибутивов уже установлено 2,7, я просто должен требовать Python 3, и все это хорошо.
Но теперь я хочу перенести пакет в Windows, и я не знаю, как это сделать. У меня есть следующие проблемы
subprocess.call(... shell=True)
и полагаются на скрипты скриптов Python для использования правильной версии. Насколько я знаю, нет способа подражать подобному поведению в Windows.У меня есть исходный код для всего, что я использую, и все находится под лицензиями libre, поэтому у меня нет проблем с компиляцией PE или переносом 2.7 скриптов в 3, но это будет утомительная работа. Единственное решение, которое я нашел до сих пор, - это переносить все на Python 3. Можете ли вы подумать о другом?
Поэтому, я думаю, вам осталось либо потребовать установки python 2.7 и python 3 в целевой системе, либо сделать отдельный exe для ваших сценариев 2.7 и 3, а также изменить вызовы подпроцесса, чтобы называть их. (вы можете связать установки python с вашим собственным, а не с использованием стандартных общесистемных установок python, но вам все равно придется менять вызовы подпроцесса вместо того, чтобы полагаться на приложение Windows по умолчанию для расширений файлов)
Как насчет использования PyInstaller? Никогда не использовал его сам, но:
PyInstaller - это программа, которая преобразует (пакеты) программы Python в автономные исполняемые файлы под Windows, Linux и Mac OS X.
Таким образом, вы можете конвертировать обе ваши программы в исполняемые файлы, а затем звонить один из другого.