RecycleView 导致 Kivy 可执行文件崩溃

Posted

技术标签:

【中文标题】RecycleView 导致 Kivy 可执行文件崩溃【英文标题】:RecycleView causing Kivy executable to crash 【发布时间】:2017-12-17 11:57:25 【问题描述】:

我按照directions in the Kivy documentation 了解如何为 Windows 打包应用程序,但我的应用程序在我尝试运行它时立即崩溃。回溯的最后一行表明我的 RecycleView 小部件存在问题:

   File "C:\Users\awende\AppData\Local\Continuum\Anaconda3\lib\site-packages\kivy\factory.py", line 139, in __getattr__
     module = __import__(name=item['module'], fromlist='.')
 ModuleNotFoundError: No module named 'kivy.uix.recycleview.__init__.'
Failed to execute script SingleTabApp

我已尝试在我所有尚未导入的 .py 和 .kv 文件中导入 kivy.uix.recycleview,但这似乎不是问题。我不确定这是我的代码有问题,还是发生了其他问题。

其他可能相关的信息:

我正在使用 Python 3.6.1 和 PyInstaller 的当前开发版本。 Kivy 版本 1.10.0 SingleTabApp 是我的主要 Python 脚本的名称,在使用 PyInstaller 之前可以正常工作。

【问题讨论】:

我遇到了同样的问题,并在 github 上打开了一个 Kivy 问题。 (github.com/kivy/kivy/issues/5276) 似乎有人在那里找到了解决方案(到目前为止我没有时间测试)。 【参考方案1】:

安装最新版本的 cython,请注意对于 cython 版本,有相应版本的 kivy。要实现 RecycleView,您的“package apk”中的 kivy 版本而不是您的计算机必须至少为 1.10

【讨论】:

【参考方案2】:

我在Windows 7 上遇到了与PyInstaller 相同的问题。我对factory_registers.py 进行了快速修复,它奏效了! (https://github.com/kivy/kivy/issues/5276)

pyinstaller 问题的快速解决方法是更改​​例如r('RecycleViewBehavior', module='kivy.uix.recycleview.init') 到 r('RecycleViewBehavior', module='kivy.uix.recycleview')。

PSfactory_registers.py也有r('RecycleView', module='kivy.uix.recycleview.__init__'),我没碰过。

【讨论】:

以上是关于RecycleView 导致 Kivy 可执行文件崩溃的主要内容,如果未能解决你的问题,请参考以下文章

Kivy 使用 RecycleView 的 CheckBox 问题

在 Kivy 中使用 RecycleView 的自定义小部件的对齐问题

轮播滑动方向的 Kivy RecycleView 不起作用

将 kivy 文件制作成可执行文件

如何在 Ubuntu 中将 kivy 和 python 打包成可执行文件?

如何从我的 kivy 应用程序(Pyinstaller)获取 Windows 可执行文件?