Портировать мульти-версию Python-приложения на Windows - PullRequest
1 голос
/ 08 сентября 2011

Я написал программу на Python 3, которая использует некоторые программы на Python 2.7 для выполнения некоторых основных задач.На gnunux он работает без проблем, так как в большинстве дистрибутивов уже установлено 2.7, мне просто нужен Python 3, и все хорошо.

Но теперь я хочу перенести пакет на Windows, и я не знаю, какуправлять этим.У меня есть следующие проблемы

У меня есть исходный код для всего, что я использую, и все находится под лицензиями libre, поэтому у меня нет проблем с компиляцией в PE или переносом 2.7 скриптов на3, но это будет утомительная работа.Единственное решение, которое я нашел, это перенести все на Python 3. Можете ли вы придумать другое?

Ответы [ 2 ]

1 голос
/ 15 сентября 2011
  • Последний Python Launcher для Windows (см. Также PEP 397 ) можно использовать для имитации поведения shebang / version.Однако, если вы хотите сделать это, в системе должны быть установлены разные версии python (и программа запуска, зарегистрированная в качестве приложения по умолчанию для файлов .py)
  • Такие инструменты, как PyInstaller и py2exeможет связывать динамически импортированные модули, но не обнаруживать их все самостоятельно: вам придется указать их самостоятельно.Я думаю, что ваша проблема с этими инструментами заключается в том, что они не создают приложения с разными версиями Python одновременно.3 в целевой системе, или создание отдельных exe-файлов для сценариев 2.7 и 3, и изменение вызовов подпроцесса для их вызова.(вы можете связать установки python с вашими собственными, вместо использования стандартных общесистемных установок python, но вам все равно придется изменить вызовы подпроцесса вместо того, чтобы полагаться на приложение Windows по умолчанию для расширений файлов)
1 голос
/ 08 сентября 2011

Как насчет использования PyInstaller?Сам никогда не использовал, но:

PyInstaller - это программа, которая преобразует (упаковывает) программы Python в автономные исполняемые файлы под Windows, Linux и Mac OS X.*http://www.pyinstaller.org/

Таким образом, вы можете преобразовать обе ваши программы в исполняемые файлы и затем вызывать одну из другой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...