zoenbo 发表于 2021-5-11 07:56

Python大佬帮我看看打包时的一个小小的小问题

本帖最后由 zoenbo 于 2021-5-11 10:54 编辑

我想把new.py打包EXE,后期ui.py可以随便增加修改内容,现在的问题是pyinstaller把new.py打包后,ui.py和打包后的new.exe放同一目录下,打开后还有CMD黑窗口(打包时加过-w,应该是只把new.py的CMD去了),有啥子办法打包可以让这个CMD消失呢?

new.py# -*- coding:utf-8 -*-
import os
os.system('ui.py')

ui.py
import wx
class Frame(wx.Frame):
    def __init__(self):
      wx.Frame.__init__(self, None, title='', size=(400, 300), name='frame', style=541072384)
      self.启动窗口 = wx.Panel(self)
      self.Centre()
      self.图片框1 = wx.StaticBitmap(self.启动窗口, size=(193, 49), pos=(54, 17), name='staticBitmap', style=0)
      self.单选框1 = wx.RadioButton(self.启动窗口, size=(80, 24), pos=(16, 58), name='radioButton', label='单选框')
      self.单选框1.SetValue(True)
      self.编辑框1 = wx.TextCtrl(self.启动窗口, size=(80, 22), pos=(32, 104), value='', name='text', style=0)
      self.选择列表框1 = wx.CheckListBox(self.启动窗口, size=(100, 50), pos=(28, 187), name='listBox', choices=[], style=0)
      self.组合框1 = wx.ComboBox(self.启动窗口, value='', pos=(199, 106), name='comboBox', choices=[], style=16)
      self.组合框1.SetSize((100, 22))


class myApp(wx.App):
    def OnInit(self):
      self.frame = Frame()
      self.frame.Show(True)
      return True


if __name__ == '__main__':
    app = myApp()
    app.MainLoop()      

超人强 发表于 2021-5-11 08:22

pyinstaller -F -i 1.ico 1.py

zoenbo 发表于 2021-5-11 08:28

超人强 发表于 2021-5-11 08:22
pyinstaller -F -i 1.ico 1.py

这个不好使,我打包时是pyinstaller -F -w new.py -i ico.ico 主要是new.py是直接执行ui.py的内容,打包时只打了new.py给new.py去了CMD,而ui.py的没去

笔墨纸砚 发表于 2021-5-11 08:43

你就保存未UI文件就好了不要弄成py文件个人建议

水木杉 发表于 2021-5-11 08:44

先打包ui.py 再把new.py中改成os.system('ui.exe'), 再打包new.py试试

水木杉 发表于 2021-5-11 08:50

水木杉 发表于 2021-5-11 08:44
先打包ui.py 再把new.py中改成os.system('ui.exe'), 再打包new.py试试

仔细想了下,好像是因为os.system()出现的黑窗口,试试WinExec("cmd.exe /c ui.py", SW_HIDE)

zoenbo 发表于 2021-5-11 08:54

水木杉 发表于 2021-5-11 08:44
先打包ui.py 再把new.py中改成os.system('ui.exe'), 再打包new.py试试

ui.py我不想让它打包成EXE,不然我就没法改了。就是想把new打包后,ui.py还能随时修改

gentlespider 发表于 2021-5-11 09:01

system这个模块的原因

zoenbo 发表于 2021-5-11 09:08

gentlespider 发表于 2021-5-11 09:01
system这个模块的原因

有没有其他的解决办法呢?我用下边的方法打包后打不开提示Failed to execute script new
with open("ui.txt", "r",encoding="UTF-8") as f:
    code = f.read()
exec(code)

linyii 发表于 2021-5-11 09:20

subprocess.popen里面有参数关闭cmd窗口
页: [1] 2
查看完整版本: Python大佬帮我看看打包时的一个小小的小问题