import welc
class MyWindow(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MyWindow, self).__init__(parent)
self.setupUi(self)
with open('qss.qss', 'r') as q:
self.setStyleSheet(q.read())
self.open.clicked.connect(lambda:self.aa(1))
def aa(self, ss):
p = Process(target=welc.mo)
p.start()
if __name__ == '__main__':
app = QApplication(sys.argv)
m = MyWindow()
m.show()
sys.exit(app.exec_())
这是 pyqt5 做的 gui。 使用 pyinstaller 打包 exe。
在开发环境中运行是正常的。
但是打包成 exe 后,在点 open 按钮,它只是反复打开自己(就是 m.show()这的主窗口。)
而不是打开进程中的方法。
这是什么原因?
1
leoleoasd 2018-10-03 13:24:39 +08:00 2
我 打 开 我 自 己
|
2
justou 2018-10-03 14:21:09 +08:00 via Android 1
pyinstaller+process 在 Windows 下需要特殊处理。好了,搜索关键字已知了
|
3
zhaolei891220 2020-03-01 15:11:44 +08:00
@justou 特意登录账号前来道谢,这个问题没有关键词很难搜索,一直不知道到底是什么问题,你这个关键字很好用,非常感谢
附答案: 新版 python3 修改方式比较简单,在 if __name__=='__main__:'下添加一句 multiprocessing.freeze_support() 即可。 如下: if __name__=='__main__': # 在此处添加 multiprocessing.freeze_support() # 这里是你的代码 # ...... |