【发布时间】:2015-09-03 06:19:10
【问题描述】:
我正在尝试使用 pyinstaller(OSX 10.10、Kivy 1.9、pyinstaller 2.1) 在 Yosemite 上打包 Kivy/Python 应用程序,但通过 Kivy OSX package how-to 并没有取得多大成功。在对我的 PYTHONPATH 进行故障排除以确保它包含 Kivy 和所有依赖项之后,我尝试构建他们的演示 touchtracer 应用程序,因为它已在示例中使用。
我为 OSX 构建的包中的任何内容都无法运行。控制台只是返回:
com.apple.xpc.launchd1: (com.apple.xpc.launchd.oneshot.0x10000017.mypython-app[15589]) 服务 以异常代码退出:255
据我所知,specfile 构建和 .app 包构建运行良好,除了在构建 specfile 时出现这两个不同的错误:
警告:未找到 ctypes 所需的库 user32.dll
然后是关于找不到 Python:
7246 ERROR: Can not find path @executable_path/../.Python (needed by /Applications/Kivy.app/Contents/Resources/python)
7246 INFO: Using Python library /System/Library/Frameworks/Python.framework/Versions/2.7/Python
7246 INFO: Adding Python library to binary dependencies
...
8489 ERROR: Can not find path @executable_path/../.Python (needed by /Applications/Kivy.app/Contents/Resources/python)
我认为这是路径的问题,但不确定它到底在寻找什么(除了 Python?)或如何解决这个问题。否则它会找到所有其他库就好了。有什么想法吗?
【问题讨论】:
-
为了记录,我通过
kivy pyinstaller.py --windowed --name my_project my_project/main.py方法运行它,因为它需要在kivy环境中运行。 -
从未使用过 pyinstaller,我正在写
pyobjc-apps 并将它们与py2app捆绑在一起 - 也许这对你有用。不知何故。 -
deets,我在看那个。用它构建 kivy 应用程序似乎没有任何优先级,但我认为这绝对是一项工作。
-
看起来这是 pyinstaller 2.1 的问题。我尝试切换到 pyinstaller 2.0,它仍然无法正常工作,但原因完全不同。看起来降级版本解决了它正确找到 Kivy 和 Python 的问题,它显然是在构建时启动的。现在我的应用程序立即启动并坦克,在控制台中给出:
6/17/15 1:37:24.996 PM com.apple.xpc.launchd[1]: (com.apple.ReportCrash[1360]) Endpoint has been activated through legacy launch(3) APIs. Please switch to XPC or bootstrap_check_in(): com.apple.ReportCrash -
如果构建工作会很有趣,但 pyinstaller 2.0 使用了一些过时的“启动 API”。
标签: python macos kivy pyinstaller