python - 在 Mac OS Mojave 上使用 py2app 部署 Kivy 应用程序
问题描述
我一直试图在 Mac OS 上分发我简单的 Kivy 应用程序,但我仍然失败了。我的环境:macOS Mojave 版本。10.14.6 与 Homebrew 一起安装的 Python 3.7.3 以及 pyenv 可以维护几个 python 版本 Kivy 1.11.1 以及一系列 Homebrew 库,例如 pig-config sdl2 sdl2_image、Gstreamer 等。
该应用程序在本地环境中运行时运行良好,但是我无法创建用于分发的版本。
我在 pyinstaller 上花了一些时间,但它不断给我丢失路径和库的错误,所以我开始寻找另一个工具,我发现了 py2app。
我可以使用以下命令轻松地以别名模式运行应用程序:
python setup.py py2app -A
接着
./dist/app.app/Contents/MacOS/app
但是当我使用普通模式创建部署版本时:
python setup.py py2app
然后启动应用程序
./dist/app.app/Contents/MacOS/app
我收到以下错误:
[INFO ] [Kivy ] v1.11.1
[INFO ] [Kivy ] Installed at "/Users/ttt/app2/dist/app.app/Contents/Resources/lib/python37.zip/kivy/__init__.pyc"
[INFO ] [Python ] v3.7.3 (default, Nov 4 2020, 11:39:31)
[Clang 10.0.1 (clang-1001.0.46.4)]
[INFO ] [Python ] Interpreter at "/Users/ttt/app2/dist/app.app/Contents/MacOS/python"
Traceback (most recent call last):
File "/Users/ttt/app2/dist/app.app/Contents/Resources/__boot__.py", line 101, in <module>
_run()
File "/Users/ttt/app2/dist/app.app/Contents/Resources/__boot__.py", line 84, in _run
exec(compile(source, path, "exec"), globals(), globals())
File "/Users/ttt/app2/dist/app.app/Contents/Resources/app.py", line 4, in <module>
from kivy.app import App
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 668, in _load_unlocked
File "<frozen importlib._bootstrap>", line 638, in _load_backward_compatible
File "kivy/app.pyc", line 319, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 668, in _load_unlocked
File "<frozen importlib._bootstrap>", line 638, in _load_backward_compatible
File "kivy/base.pyc", line 26, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 668, in _load_unlocked
File "<frozen importlib._bootstrap>", line 638, in _load_backward_compatible
File "kivy/clock.pyc", line 363, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 668, in _load_unlocked
File "<frozen importlib._bootstrap>", line 638, in _load_backward_compatible
SystemError: <method 'load_module' of 'zipimport.zipimporter' objects> returned NULL without setting an error
2020-11-12 14:38:41.362 app[68264:333518] app Error```
I did a google search on
**SystemError: <method 'load_module' of 'zipimport.zipimporter' objects> returned NULL without setting an error**
but I didn't get any responses related to this issue.
I am not sure what I should do to troubleshoot.
Any insights would be appreciated.
解决方案
推荐阅读
- python-3.x - OSError : [Errno 24] 打开的文件太多
- logging - 从自身内部获取 Kubernetes POD 的完整 ID(运行容器)
- c# - 如何在 Python 中调用从 C# .dll 实例化类的静态方法
- php - 我正在为 WordPress 创建自定义主题,如何显示我创建的“WordPress 页面”?
- javascript - 如何在Angular中编辑和更新来自JSON的文件的数组项
- php - 通过自定义工匠 cammand laravel 进行 sql DB 备份
- sql - 如何解决 rownum 函数的 ORA01722 错误
- php - 如何在php中获取上传文件的完整路径?
- javascript - 如何在 JavaScript 中将文件转换为张量
- c# - 编写一个程序,输出“我信任你,你背叛了我”——但把它放在小写的驼峰式中