【问题标题】:Using PyInstaller to make Kivy App excuteable使用 PyInstaller 使 Kivy 应用程序可执行
【发布时间】:2016-11-24 17:00:34
【问题描述】:

在创建规范(使用 pyinstaller)文件并添加所需的代码行(如 kivy 文档所述)后,我得到了这个 txt 文件“warnHR_specialist”,其中包含大量“缺少名为.........”的模块行.

此外,它自己的 GUI 正在工作,但是当我尝试使用链接到某个函数的按钮时,我收到了一个致命错误,提示“无法执行脚本”。

此按钮捕获一个 txt 文件路径,打开它并使用 pandas 模块操作数据..我可以添加 os 模块吗?我真的很困惑...

这是我在我的应用中使用的模块:

from kivy.app import App
from kivy.uix.button import Button
from kivy.core.window import Window
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
import re
import pandas as pd

我使用这个命令来创建规范文件:

 pyinstaller --onedir --name=HR_specialist --windowed "my_file_path_here\HR_specialist.py"

这是我得到的规范文件 + 我在其中所做的 kivy 更改,正如他们所描述的那样:

# -*- mode: python -*-
from kivy.deps import sdl2, glew
from os import path
block_cipher = None


a = Analysis(['C:\\Users\\kedem_000\\PycharmProjects\\Projects\\HR_specialist\\HR_specialist.py'],
             pathex=['C:\\Users\\kedem_000\\PycharmProjects\\Projects\\HRexe'],
             binaries=None,
             datas=None,
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher)

pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)

exe = EXE(pyz,
          a.scripts,
          exclude_binaries=True,
          name='HR_specialist',
          debug=False,
          strip=False,
          upx=True,
          console=False )

coll = COLLECT(exe, Tree('C:\Users\kedem_000\PycharmProjects\Projects\HR_specialist'),
               a.binaries,
               a.zipfiles,
               a.datas,
               *[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
               strip=False,
               upx=True,
               name='HR_specialist')

我试图解决这个问题超过两个星期,但我失去了理智......

如果需要更多信息,请发表评论。

谢谢!

【问题讨论】:

    标签: python python-2.7 kivy pyinstaller


    【解决方案1】:

    此外,它自己的 GUI 正在工作,但是当我尝试使用链接到某个函数的按钮时,我收到一个致命错误,提示“无法执行脚本”。

    如果 GUI 工作,则意味着依赖项已成功打包到 exe/文件夹(在您的案例文件夹中)。从这句话判断,即使Button 事件有效,所以 Kivy 应该被正确打包。

    然而,错误是关于一些缺失的模块(请包括日志!),因此这意味着 那些 模块没有被打包,或者 Python 无法导入它。如果它们未打包,您可能需要将它们包含在 hidden_imports 中,如果 pyinstaller 也忘记将它们提取到文件夹中。

    如果它们被打包(打开文件夹,检查),它们可能无法导入。这似乎是您操纵了在 Pycharm 中获取导入的路径,您需要 edit it

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-08
      • 2015-09-24
      • 2019-11-02
      • 1970-01-01
      • 1970-01-01
      • 2022-12-11
      相关资源
      最近更新 更多