「已注销」 2020-03-09 18:11 采纳率: 0%
浏览 1000

pyinstaller打包错误 No module name pyg_resources.py2_warn

我用kivy(一个gui开发模块)制作了一个简单的gui程序,idle运行正常,代码如下:

import os
import kivy
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
from kivy.uix.screenmanager import ScreenManager,Screen
class ConnectPage(GridLayout):
    def __init__(self,**kwargs):
        super().__init__(**kwargs)
        self.cols = 2
        if os.path.isfile("C:/Users/Administrator/Desktop/informations.txt"):
            with open("C:/Users/Administrator/Desktop/informations.txt","r") as f:
                d = f.read().split(",")
                prev_ip = d[0]
                prev_port = d[1]
                prev_username = d[2]
        else:
            prev_ip = ""
            prev_port = ""
            prev_username = ""

        self.add_widget(Label(text="IP:"))
        self.ip = TextInput(text=prev_ip,multiline=False)
        self.add_widget(self.ip)
        self.add_widget(Label(text="Port:"))
        self.port = TextInput(text=prev_port,multiline=False)
        self.add_widget(self.port)
        self.add_widget(Label(text="Username:"))
        self.username = TextInput(text=prev_username,multiline=False)
        self.add_widget(self.username)
        self.join = Button(text="Join")
        self.join.bind(on_press=self.join_button)
        self.add_widget(Label())
        self.add_widget(self.join)
    def join_button(self,type):
        port = self.port.text
        ip = self.ip.text
        username = self.username.text
        with open("C:/Users/Administrator/Desktop/informations.txt","w") as f:
            f.write(f"{ip},{port},{username}")
        info = f"Attempting to join {ip}:{port} as {username}"
        chat_app.info_page.update_info(info)
        chat_app.screen_manager.current = "Info"
class InfoPage(GridLayout):
    def __init__(self,**kwargs):
        super().__init__(**kwargs)
        self.cols = 1
        self.message = Label(halign="center",valign="middle",font_size=30)
        self.message.bind(width=self.update_text_width)
        self.add_widget(self.message)
    def update_info(self,message):
        self.message.text = message
    def update_text_width(self,*_):
        self.message.text_size = (self.message.width*0.9,None)
class EpicApp(App):
    def build(self):
        self.screen_manager = ScreenManager()
        self.connect_page = ConnectPage()
        screen = Screen(name="Connect")
        screen.add_widget(self.connect_page)
        self.screen_manager.add_widget(screen)
        self.info_page = InfoPage()

        screen = Screen(name="Info")
        screen.add_widget(self.info_page)
        self.screen_manager.add_widget(screen)
        return self.screen_manager
if __name__ == "__main__":
    chat_app = EpicApp()
    chat_app.run()

当我在命令行输入pyinstaller -F main.py(上面代码文件),打包没有异常。
之后我尝试打开exe,报错了:

pyinstaller打包错误
(这是我在闪退的瞬间拍到的)
经过一段时间,我按照kivy打包指南,先弄spec文件,修改,然后编译。结果是一样的错误。

我又试着后面加上--hidden-import pyg_resources.py2_warn。
但还是报了同样的错误。
后来,我用了setuptools降级的方法,出现了这个错误
图片说明
注意,这个main.py的名字我改成了chat_app.py,大家不要留意。
我又试着把pkg_resources的__init__.py的86行删了,报错和上面一样。

有哪位大佬知道如何解决?

  • 写回答

1条回答 默认 最新

  • 关注
    评论

报告相同问题?

悬赏问题

  • ¥100 c语言,请帮蒟蒻看一个题
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)