【问题标题】:Why is my Kivy windows Executable not running?为什么我的 Kivy windows Executable 没有运行?
【发布时间】:2020-09-23 02:51:08
【问题描述】:

我制作了一个 kivy 应用程序并将其打包为可执行文件,但由于某种原因,可执行文件仅打开一瞬间然后关闭,没有显示任何内容。我确信我的代码在我的文本编辑器中运行时没有任何缺陷,我能做些什么来解决这个问题?

规格文件-

from kivy_deps import sdl2, glew

# -*- mode: python ; coding: utf-8 -*-

block_cipher = None


a = Analysis(['C:\\Users\\Admin\\Assignment\\Info_Tech_Assignment.py'],
             pathex=['C:\\Users\\Admin\\Desktop\\Tech'],
             binaries=[],
             datas=[],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          [],
          exclude_binaries=True,
          name='Info_Tech',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          console=True )
coll = COLLECT(exe, Tree('C:\\Users\\Admin\\Assignment\\'),
               a.binaries,
               a.zipfiles,
               a.datas,
               *[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
               strip=False,
               upx=True,
               upx_exclude=[],
               name='Info_Tech')

Python 代码 -

import kivy
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.uix.screenmanager import Screen, ScreenManager
from kivy.properties import StringProperty, ObjectProperty
import webbrowser
from kivy.uix.image import Image
from kivy.core.window import Window
import keyboard



class Login(Screen):
    def validate(self):
        user = self.ids.input_1
        pwd = self.ids.input_pwd
        info = self.ids.info

        uname = user.text
        passw = pwd.text   

        
        if uname == '' or passw == '':
            info.text = '[color=#FF0000]Username or password needed[/color]'
        else:
            if uname == 'Savant' and passw == 'root':
                self.parent.current = 'contentpage'
            else:
                    info.text = '[color=#FF0000]Username or password is invalid[/color]'
    pass

class TableOfContents(Screen):
    pass

class WorldWideWeb(Screen):
    def web(self):
        webbrowser.open("https://en.wikipedia.org/wiki/Tim_Berners-Lee")
    pass

class HypertextMarkupLanguage(Screen):
    pass

class HypertextTransferProtocol(Screen):
    pass

class Hyperlinks(Screen):
    pass

class WebServer(Screen):
    pass

class Webpage(Screen):
    pass

class FileTransferProtocol(Screen):
    pass

class WebBrowser(Screen):
    pass

class UniformResourceLocator(Screen):
    pass

class UploadandDownload(Screen):
    pass

class Email(Screen):
    pass

class Pictures(Screen):
    pass

class References(Screen):
    pass

class WindowManager(ScreenManager):
    data_dir = App().user_data_dir
    
    pass

kv = Builder.load_file("rtech.kv")

class info(App):
    def build(self):
        return kv

if __name__ == "__main__":
    Window.maximize()
    info().run()

keyboard.wait('esc')

【问题讨论】:

  • 从命令提示符运行它,然后您将很容易看到实际的错误消息......可能它缺少一些字体或其他数据文件
  • @JoranBeasley 感谢您的建议,我用谷歌搜索了确切的错误,我发现我的问题是我运行了错误的 exe

标签: python python-3.x windows kivy kivy-language


【解决方案1】:

我发现了问题,这是因为我运行的是build 文件夹可执行文件而不是dist 文件夹可执行文件,显然这是人们常犯的错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-10
    • 2014-07-03
    • 2017-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    相关资源
    最近更新 更多