PyInstaller的Kivy Garden - 试图跟踪导入

时间:2014-06-04 22:00:54

标签: python kivy pyinstaller

我有一个基于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,没有任何乐趣。有人有什么想法吗?

4 个答案:

答案 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显示为白色矩形。我不知道我可能会错过什么..但至少我已经超越了导入问题。