我的理解是,只要使用非 Apple 默认的 Python 来构建,最终用户就不需要自己安装 Python 来执行 py2app 构建的应用程序。在我自己的环境中开发和测试应用程序时,我显然已经安装了 Python。具体来说,我内置了一个带有 python.org 安装的 pyenv,而不是 Apple 自己的。然而,当我将应用程序提供给未安装 Python 的最终用户时,她得到:
找不到 Python 运行时。您可能需要安装 Python 的框架构建,或编辑此应用程序的 Info.plist 文件中的 PyRuntimeLocations 数组。
第二行是关于;如果它所说的是真的,那么需要为最终用户安装的每个可能位置构建一个单独的应用程序实例,例如/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 怎么办?如何避免这种有点硬编码的依赖?