Pyinstaller:Kivy:AttributeError:'NoneType'对象没有属性'clearcolor'

问题描述

我正在尝试使用auto-py-to-exe为Windows打包基于kivy的python应用程序。 auto-py-to-exe使用Pyinstaller打包。因此,在打包应用程序并尝试运行该应用程序的已创建可执行文件之后,我会遇到此错误

File "desktop.py",line 356,in <module>
AttributeError: 'nonetype' object has no attribute 'clearcolor'

desktop.py中的实际代码中指的是:

from kivy.core.window import Window

....something....

if __name__ == "__main__":
    .... something

    Window.clearcolor = (1,1,0.99,1)

    ....something

在这里,我试图为窗口提供接近白色的背景。

我已经检查了kivy的正确安装以及python站点软件包中kivy.core.window模块的可用性。 我已在多个地方阅读过使用--hidden-import中的软件包名称的信息,因为有时可能由于路径错误或其他问题而无法选择模块,因此我尝试将此模块作为--hidden-import "kivy.core.window" 传递,也尝试了{{ 1}}标记--add-data,以强制包含kivy.core.window。 但是没有运气,我仍然遇到同样的错误

如果我没记错的话,上述错误意味着尽管模块在正确的位置(即包装后)与包装一起存在,但代码尝试访问--add-data "C:/python3/Lib/site-packages/kivy/core/window;window/"代码仍会获得nonetype其他kivy模块。

另外,当我从某个IDE运行脚本时,它运行正常。

我已遵循this文档来调试Pyinstaller警告/错误

配置:Windows10,python3.4,kivy 1.11.1

我缺少什么或者如何指定可执行文件以在正确的路径下查找文件

解决方法

因此在@inclement的注释之后:删除该行 删除此行后,我得到set_target_properties(Client PROPERTIES CXX_STANDARD 17 # standard version CXX_STANDARD_REQUIRED ON # required yes ) 。我浏览了此错误,找到了与sdl2.dll here相关的不同解决方案。因此,我继续为Windows环境变量路径 [CRITICAL] [App ] Unable to get a Window,abort.中的sdl2,毛刺和角度在.dll文件中添加了路径,并为毛刺和角度添加了路径。因此,所有.dll文件都已正确导入,并且可以正常工作。