

exe化は普通に出来ましたが、exeを起動すると、

[code]

    Failed to execute script 'main' due to unhandled exception:
    Nofile 'image.png'found in working directory 'C:\Users\username\desktop\pythongame\dist'.Traceback (most recent call last):
    
      File "main.py", line 8, in <module>
    FileNotFoundError: No file 'image.png' found in working directory 'C:\Users\username\Desktop\pythongame\dist'.
    
[/code]

と表示されますが、画像ファイル等は、pythongameファイルに入っています。  
渋々distファイルに画像を入れて、試しにzipファイルにして実行してみた物の、  
次は上のコードのpathの所が、C:\windows\system32\になっていました。  
他の人にexeファイルをどうにか渡したいのですがこのエラーはどのようにして解決できますか？


CC BY-SA 4.0
2023-04-24T08:59:31.047
94633
2023-11-27T12:03:35.410
55365
question
python python3 pyinstaller
pyinstallerでexeを起動しようとすると、FileNotFoundErrorが起きる


質問者さんからの追加情報が出てきませんが、現在の質問に書かれている情報だけで言うと以下になります。

エラーメッセージに書かれている内容をよく読みましょう。  
メッセージには

[code]

    Nofile 'image.png'found in working directory 'C:\Users\username\desktop\pythongame\dist'.Traceback (most recent call last):
    
[/code]

および

[code]

    FileNotFoundError: No file 'image.png' found in working directory 'C:\Users\username\Desktop\pythongame\dist'.
    
[/code]

と書かれていますが、質問には

[code]

    画像ファイル等は、pythongameファイルに入っています。
    
[/code]

そしてさらに

[code]

    渋々distファイルに画像を入れて、試しにzipファイルにして実行してみた物の、
    
[/code]

と書かれています。

エラーメッセージとしては作業ディレクトリである`'C:\Users\username\Desktop\pythongame\dist'`には`'image.png'`が無いということです。  
なので`'image.png'`を`'C:\Users\username\Desktop\pythongame\dist'`にコピーするだけで、その配下にあるexe化したスクリプトを実行したなら問題無く動作したはずです。

だから`試しにzipファイルにして実行してみた`というのが余計な対処でしょうね。

そして`試しに`と書かれていますが、何と何を対象にzipファイルにしたのか、`zipファイルにして実行する`という表現は何を示しているのかが不明です。  
通常、zipファイルは実行できない(7zip等圧縮展開プログラムのパラメータとして関連付ければダブルクリック等で圧縮展開は出来るでしょうが)はずです。

さらに

[code]

    次は上のコードのpathの所が、C:\windows\system32\になっていました。
    
[/code]

とか

[code]

    他の人にexeファイルをどうにか渡したいのですが
    
[/code]

といった記述と、質問の最初にあるPyInstallerで作成したexeを実行してエラーが発生したことの間には、実行した手順ややりたいことの背景で説明されていない部分が多々あって、他の人にはどういう状況で何が問題なのか把握できないでしょう。それらを質問に追記するか、それぞれを新たな問題として別途質問記事を起こしてください。

ちなみに`pathの所が、C:\windows\system32\に`なったのはexeを管理者として実行したか、exe化して出来たファイルやフォルダを`C:\windows\system32`にコピーした可能性が考えられます。  
そして`他の人にexeファイルを渡したい`なら`dist`フォルダ配下の全てをそのツリー構造のままコピーすれば良いのでは？

* * *

質問記事を改善するなら以下のような情報を追記してみてください。

  * exe化対象のスクリプト(問題が再現する最小限の内容に絞り込む)
  * 使用する関連ファイル(この場合は`image.png`等)と複数フォルダやファイルがあるならその全てやツリー関係
  * PyInstallerに指定したコマンドラインオプション
  * specファイルを使用したなら、その内容
  * exe化したプログラムの起動方法
  * 発生したエラーメッセージは省略せずに表示された全てを提示する


CC BY-SA 4.0
2023-04-30T15:57:03.450
94694
2023-04-30T15:57:03.450
26370
94633
answer