Приложение, созданное с использованием не системного Python с использованием py2app в pyenv, не может быть запущено на других машинах
Насколько я понимаю, до тех пор, пока для сборки используется Python, отличный от Apple, по умолчанию, конечному пользователю не нужно устанавливать Python для запуска приложения, созданного на py2app. При разработке и тестировании приложения в моей среде у меня, очевидно, установлен Python. В частности, я построил вpyenv с установкой на python.org, а не с Apple. Тем не менее, когда я отдаю приложение конечному пользователю, у которого не установлен Python, она получает:
Не удалось найти среду выполнения Python. Вам может потребоваться установить сборку фреймворка Python или отредактировать массив PyRuntimeLocations в файле Info.plist этого приложения.
Вторая строка касается; если то, что в нем указано, является правдой, то для каждого возможного места установки конечного пользователя необходимо создать отдельный экземпляр приложения, например/usr/bin
, /Library/Frameworks
и т.п.
ОБНОВИТЬ: Info.plist определяет:
<key>PythonExecutable</key>
<string>/Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python</string
Тем не менее, у данного конечного пользователя только установка системы в/usr/bin
.
Означает ли это, что каждый конечный пользователь должен иметь установленный снаружи Python, и он должен жить в/Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python
Что если у них нет не-Apple Python? Что если у них не Apple Python, но он не 2.6? Как можно избежать этой жестко закодированной зависимости?