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 的自定义小部件的对齐问题