问题描述
我正在尝试使用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文件都已正确导入,并且可以正常工作。