2016-11-21 42 views
5

我有一個艱難的時間,克服了這個錯誤,我已經找遍了該錯誤消息,似乎沒有任何有關我的情況:Windows的Pyinstaller錯誤「無法執行腳本」當App點擊了

"failed to execute script new-app" 

新應用程序是我的Python GUI程序。當我運行pyinstaller使用這個命令:

pyinstaller.exe --onedir --hidden-import FileDialog --windowed --noupx new-app.py 

它確實工作順利。此外,當我執行命令行運行GUI程序,它完美的作品,並使用此命令生成的GUI:

.\dist\new-app\new-app.exe 

但是,當我去到該文件希望能夠點擊應用得到GUI,它給了我上面說的錯誤。這是爲什麼?

我使用python2.7,操作系統是Windows 7 Enterprise。

任何輸入將不勝感激,並提前感謝。

+0

@eryksun對不起,這是一個錯字,我正在修復它。 – aBiologist

+0

完成修復錯字! – aBiologist

回答

9

嗯,我想我已經找到了我自己的問題的解決方案,這是我如何做的:

Eventhough我能夠成功運行使用Python的命令的程序以及成功運行pyinstaller並能夠使用問題中提到的命令行執行應用程序「new_app.exe」,在這兩種情況下顯示GUI都沒有任何問題。但是,只有當我單擊該應用程序時,它纔會允許顯示GUI,並且不會生成錯誤。

所以,我所做的是我在pyinstaller命令中添加了一個額外的參數--debug,並刪除了--windowed參數,這樣我就可以看到實際發生的事情,當點擊應用程序時,我發現有一個這個錯誤在我追蹤它時很有意義,它基本上抱怨「some_image.jpg」沒有這樣的文件或目錄

當我從第一個地方運行腳本或者甚至使用命令行「./」時,它抱怨並沒有抱怨的原因是因爲文件圖像與腳本位於相同的路徑中,但是當pyinstaller創建了具有應用產品的「dist」目錄,它使得圖像文件不存在,所以我基本上將它移動到那個可點擊應用程序在那裏的dist目錄!

+0

Explorer在雙擊文件時將工作目錄設置爲打開的目標文件的工作目錄。但是,您的可執行文件可以在任何工作目錄下運行,並且它仍然能夠查找與其相關的所有數據。通常使用'os.path.dirname(sys.argv [0])'或'os.path.dirname(sys.executable)'凍結的程序。最好使用'os.path.join'爲你的數據文件創建路徑,但是你也可以通過'os.chdir'改變工作目錄。 – eryksun

+0

謝謝你,你值得更多的榮譽(y) –

+0

該方法有幫助。謝謝。 –