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() pyinstaller -F -i 1.ico 1.py 超人强 发表于 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的没去 你就保存未UI文件就好了不要弄成py文件个人建议 先打包ui.py 再把new.py中改成os.system('ui.exe'), 再打包new.py试试 水木杉 发表于 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) 水木杉 发表于 2021-5-11 08:44
先打包ui.py 再把new.py中改成os.system('ui.exe'), 再打包new.py试试
ui.py我不想让它打包成EXE,不然我就没法改了。就是想把new打包后,ui.py还能随时修改 system这个模块的原因 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) subprocess.popen里面有参数关闭cmd窗口
页:
[1]
2