Pygame在用pyinstaller時報錯,Failed to execute scripts Main

前幾天做好了飛機大戰的遊戲,準備把它用pyinstaller打包起來。
結果打包好了後,很開心的一打開居然給我報錯了,內容如下:Failed to execute scripts Main.

這我就懵了呀,我可是第一次用pyinstaller呀。這個樣子報錯我馬上去網上千查萬查,參數數十種辦法,不是瞎說,這辦法我就嘗試了沒有三十次也有二十次了。我用了差不多8個小時也沒有成功,人真的是要崩潰了。

正當我要放棄的時候,我看見了網上一個說法,他說先寫一個簡單的小遊戲,然後嘗試一下會不會出現問題,如果沒有問題,那麼說明是我這個代碼的問題,而不pyinstaller的問題。於是我嘗試了一下,小遊戲正常運行。。。。。。。

那麼說明我花了這麼久也沒查到答案最後居然是代碼寫錯了???
我實在不敢相信!

不巧的是我在之前還看到一篇文章說是pyinstaller不支持中文字體,於是我把我代碼中的字體用#去掉,然後再次嘗試pyinstaller,結果很明顯,還是報錯。

但是我在想我用Python的代碼來啓動遊戲是可以執行的,那應該說明我的代碼沒有錯啊。於是我用了一個蠢的辦法,但是不得不說是有效的方法。

我重新分析,我的這個遊戲分有三個文件夾,圖像,字體,音效,還有加上主模塊的5個模塊構成,既然字體的影響刪去還是無法正常遊戲,那麼我就試試其他的,圖像一般是不會有問題,所以我從音效開始嘗試起,事實證明我的分析是對的。

我將音效去除,然後用pyinstaller重新打包遊戲,結果就正常運行了(沒有聲音)。

於是我開始二次分析,既然是音效的問題,那麼遊戲一開始就報錯,而不是玩了一下崩潰退出,就證明不是遊戲中什麼飛機爆炸的音效的影響,於是我從最有可能的部分入手——背景音樂。打開sound文件夾這麼一看果然如此,所有文件都是wav格式的,而只有背景音樂是ogg格式。這就更加讓我確定了我的想法,於是我上網一查,果不其然啊。給你們看看我看到了什麼(轉一個別人的文章)

現在遊戲可以正常運行了。
在這裏插入圖片描述
在這裏插入圖片描述
雖然耗時很長,但是自己解決問題的感覺真的是很爽。

————————華麗的分割線——————————

總結:出現Failed to execute scripts Main的報錯,不一定是什麼高大上的故障。

1、檢查一下打包好之後有沒有把必要的組件放入dist文件夾(圖片,字體,音效,txt文檔(源代碼不需要)),然後就是build文件夾,好像沒什麼用,可以刪了。(看了一下別人的文章,也是這麼說的,我自己也刪了,並不影響遊戲)

2、如果確信自己沒有漏掉組件,那就檢查一下組件的形式。
(事實證明:用pyinstaller打包以後pygame不支持播放mp3和ogg文件 我把音樂文件轉換成wav格式就成功了。所以mp3和ogg在pycharm裏可以正常使用,不過如果要轉成exe的話還得先把音樂文件統一轉化成wav才行)

親身試驗過,如果圖片什麼的沒有放進去,報錯也是Failed to execute scripts Main。

如果幫到你,那麻煩你幫我點個贊吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章