您需要py2app
在 Mac 上运行。
该py2app
代码使用用于运行它的 Python 副本来构建独立的可执行文件。如果该 Python 不是 Mac 版本(如果您在 Windows 上运行,则不是),它将无法创建 Mac 可执行文件。
从技术上讲,错误消息告诉您它找不到libpython.dylib
orPython.framework
关联sys.executable
,这是真的,但在这种情况下可能更有用。
有一些替代方法py2app
,例如cx_freeze
,但它们的工作方式都相同:从用于运行它们的 Python 安装构建一个可执行文件。
因此,如果您想在 Windows 上构建 Mac 可执行文件,则没有自动化的方法可以做到这一点。
但有几种可能性。
首先,您可以花 100 美元左右购买二手 Mac Mini。为开发设置它,打开远程登录访问(在首选项的共享窗格中)并让它在角落里运行。在 Windows 中,您可以使用一个小的 4 行ssh
脚本来告诉 Mac 检查源、py2app
它、zip
结果,然后scp
将其移至 Windows 框(或通过 Windows 文件共享复制它,或ftp
它,或检查它进入源代码控制或其他)。
如果由于某种原因这不可行,希望您至少可以偶尔访问 Mac。(如果没有,您将如何测试?)。如果是这样,您可以构建一个应用程序py2app
并将其压缩以用作模板。每次您想要创建一个新版本时,您都可以在 Windows 上执行此操作,只需修改模板中的内容即可。
主foo.py
脚本进入foo.app/Contents/Resources/foo.py
. 任何其他 Python 模块(无论是标准库、第三方还是您自己的代码),除了少数例外,都进入foo.app/Contents/Resources/lib
. 任何 C 扩展模块都进入一个目录,如foo.app/Contents/Resources/lib/python2.7/lib-dynload
.
只要您不修改任何 C 扩展,升级到新版本的 Python,或添加您不知道如何手动安装的新第三方库(例如,因为您通过 获取它们作为鸡蛋easy_install
),这将继续有效。如果您执行上述任何操作,则需要返回 Mac 并使用py2app
.
如果您根本无法使用 Mac,您也许可以py2app
为其他项目找到一个预构建的应用程序,该应用程序恰好包含您需要的所有内容,在这种情况下,您可以将其用作模板。但这是一个巨大的延伸。