我有一个基于Kivy的Python项目,我正在尝试构建。它使用Kivy Garden的NavigationDrawer组件,通过导入:
来自kivy.garden.navigationdrawer导入NavigationDrawer
我有一个PyInstaller规范文件,它构建了一个可分发的版本。这个版本在我的机器上运行良好,但遗憾的是在其他机器上没有。在' dist'中运行翻译。使用-v开关的版本,似乎当我在我的机器上运行distributable时,navigationdrawer组件实际上并不来自我的构建文件夹。所有其他导入显示如下:
导入kivy.graphics.gl_instructions#动态加载来自C:\ Users \ me \ myapp \ dist \ RACECA~1 \ kivy.graphics.gl_instructions.pyd
但导航器导入说:
导入kivy.garden.navigationdrawer
"""目录C:\ Users \ me \ .kivy \ garden \ garden.navigationdrawer C:\ Users \ me \ .kivy \ garden \ garden.navigationdrawer \ __ init __。pyc匹配C:\ Users \ me \ .kivy \ garden \ garden.navigationdrawer \ __ init__.py import kivy.garden.navigationdrawer#预编译来自C:\ Users \ me \ .kivy \ garden \ garden.navigationdrawer \ __ init __。pyc"""
但是没有!我不希望您从c:\ users导入它们。我想让它们很好地复制到我的dist文件夹中,就像所有其他导入一样。我已经尝试将c:\ users \ me添加到PyInstaller的pathex,系统PATH和PYTHONPATH,没有任何乐趣。有人有什么想法吗?
答案 0 :(得分:2)
您可以将导航提款代码从C:\Users\me\.kivy\garden\garden.navigationdrawer
复制到您的应用目录,调用文件夹'navigationdrawer'并将导入替换为from navigationdrawer import NavigationDrawer
。
这不是'正确'的方法(可能有一些方法可以让pyinstaller复制它),但它应该可以正常工作。
答案 1 :(得分:1)
尝试将您的花园套餐安装到您的应用中。即。
garden install --app navigationdrawer
这将在当前目录中创建一个libs / garden文件夹,并将花园包放在那里,这样可以更容易包含。
答案 2 :(得分:0)
转到你的python站点包,有一个名为garden的文件夹,查看__init__.py
。有一个解释如何安装导航器。
答案 3 :(得分:0)
我在园区模块方面遇到了类似的问题。我安装时如下:
启动cmd / C"花园安装--kivy roulettescroll" 开始cmd / C"花园安装 - kivy轮盘" 开始cmd / C"花园安装 - kivy tickline" 开始cmd / C"花园安装--kivy datetimepicker"
我添加了PyInstaller ... --hidden-import = kivy.garden.tickline --hidden-import = kivy.garden.roulette --hidden-import = kivy.garden.roulettescroll --hidden-import = kivy。 garden.datetimepicker ...
我能够安装并且没有Python拾取模块的问题。不幸的是,datetimepicker显示为白色矩形。我不知道我可能会错过什么..但至少我已经超越了导入问题。