OSX Yosemite 上的打包 Kivy Python 应用程序无法正常工作
Packaging Kivy Python applications on OSX Yosemite not working
我正在尝试使用 pyinstaller (OSX 10.10, Kivy 1.9, pyinstaller 2.1) 在 Yosemite 上打包一个 Kivy/Python 应用程序通过 Kivy OSX package how-to 并没有取得太大的成功。在对我的 PYTHONPATH 进行故障排除以确保它包含 Kivy 和所有依赖项之后,我尝试构建他们的演示 touchtracer 应用程序,因为示例中使用了它。
无论我为 OSX 构建什么包,都不会 运行。控制台只是 returns:
com.apple.xpc.launchd1:
(com.apple.xpc.launchd.oneshot.0x10000017.mypython-app[15589]) Service
exited with abnormal code: 255
据我所知,specfile 构建和 .app 包构建运行良好,除了在构建 specfile 时出现以下两个不同的错误:
WARNING: library user32.dll required via ctypes not found
然后关于找不到 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 除外?)或如何解决这个问题。否则它会发现所有其他库都很好。有什么想法吗?
因此,即使我的应用程序无法正常运行,我也已经从技术上回答了这个问题。无论出于何种原因,pyinstaller 2.1 都无法正确找到 Python 或 Kivy。当我下载 pyinstaller 2.0 和 运行 时,一切都正常构建。
我不再遇到那些 "Can not find path" 错误,而是像
这样看起来很开心的输出
[INFO ] [Logger ] Record log in /Applications/Kivy.app/Contents/Resources/.kivy/logs/kivy_15-06-17_9.txt
4618 INFO: [Logger ] Record log in /Applications/Kivy.app/Contents/Resources/.kivy/logs/kivy_15-06-17_9.txt
[INFO ] [Kivy ] v1.9.0
4617 INFO: [Kivy ] v1.9.0
[INFO ] [Python ] v2.7.6 (default, Sep 9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)]
4618 INFO: [Python ] v2.7.6 (default, Sep 9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)]
所以现在我只需要排除故障并找出应用程序立即启动和崩溃的原因,将其输出到控制台:
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 (OSX 10.10, Kivy 1.9, pyinstaller 2.1) 在 Yosemite 上打包一个 Kivy/Python 应用程序通过 Kivy OSX package how-to 并没有取得太大的成功。在对我的 PYTHONPATH 进行故障排除以确保它包含 Kivy 和所有依赖项之后,我尝试构建他们的演示 touchtracer 应用程序,因为示例中使用了它。
无论我为 OSX 构建什么包,都不会 运行。控制台只是 returns:
com.apple.xpc.launchd1: (com.apple.xpc.launchd.oneshot.0x10000017.mypython-app[15589]) Service exited with abnormal code: 255
据我所知,specfile 构建和 .app 包构建运行良好,除了在构建 specfile 时出现以下两个不同的错误:
WARNING: library user32.dll required via ctypes not found
然后关于找不到 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 除外?)或如何解决这个问题。否则它会发现所有其他库都很好。有什么想法吗?
因此,即使我的应用程序无法正常运行,我也已经从技术上回答了这个问题。无论出于何种原因,pyinstaller 2.1 都无法正确找到 Python 或 Kivy。当我下载 pyinstaller 2.0 和 运行 时,一切都正常构建。
我不再遇到那些 "Can not find path" 错误,而是像
这样看起来很开心的输出[INFO ] [Logger ] Record log in /Applications/Kivy.app/Contents/Resources/.kivy/logs/kivy_15-06-17_9.txt
4618 INFO: [Logger ] Record log in /Applications/Kivy.app/Contents/Resources/.kivy/logs/kivy_15-06-17_9.txt
[INFO ] [Kivy ] v1.9.0
4617 INFO: [Kivy ] v1.9.0
[INFO ] [Python ] v2.7.6 (default, Sep 9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)]
4618 INFO: [Python ] v2.7.6 (default, Sep 9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)]
所以现在我只需要排除故障并找出应用程序立即启动和崩溃的原因,将其输出到控制台:
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
我想那是另一个问题。