0
我有一個pyinstaller和我的程序的問題。如果我開始我的腳本,一切運行正確,但如果我運行該exe文件,它正在做奇怪的事情。Pyinstaller-exe做比Python腳本其他東西
這段代碼應該在顯示框架時做些什麼,如果框架完成了,框架應該銷燬。但是在exe文件中它並沒有創建任何東西,但是在一段時間後創建了第二個主框架(在這個腳本中沒有創建主框架,這隻發生在wxpython應用程序中)。 繼承人其中框架創建代碼:
# self is a wx.Frame
def handleInputs(self):
path = self.setSavePath() # setSavePath just takes a path from a fileDialog
if path:
self.dialog = WaitingDialog() # subclass of wx.MiniFrame
self.dialog.Show(True)
calcThread = threading.Thread(target=self.doStuff)
checkThread = threading.Thread(target=self.checkFinishing)
calcThread.start()
checkThread.start()
self.Disable()
def checkFinishing(self, thread):
while thread.is_alive():
pass
wx.CallAfter(self.closeFrame)
return True
def doStuff(self):
# do Stuff here
return True
def closeFrame(self):
self.dialog.Destroy()
self.Destroy()
所以,self.handleInputs()被調用,但在應用程序,它看起來像沒有在doStuff()完成,然後一個新的主框架被建造。 你看到任何錯誤或知道爲什麼會發生這種情況?
有關您如何使用pyinstaller的信息將有所幫助,SSSCE(http://www.sscce.org/)也會說明問題。就目前而言,我無法使用您提供的內容重現您的行爲。 –
另外,你是否在你的應用中的任何地方進行多處理?是否有可能應該在'if __name__ =='__main __''塊之下沒有正確縮進? PyInstaller的兩遍執行可能會產生奇怪的行爲。 –
謝謝,現在解決了,問題是多處理。我現在刪除了所有進程並使用線程,但現在速度稍慢。對不起,如果我的例子有點不固定,它已經太晚了:(我會記住下次 –