--onefile を使用して外部ファイルを PyInstaller にバンドルする
PyInstaller の --onefile を使用して単一ファイルの実行可能ファイル (.exe) を作成しようとするときonefile オプションを使用すると、ユーザーは画像やアイコンなどの外部ファイルを組み込むときに問題が発生する可能性があります。このオプションは便利でポータブルなアプリケーションを生成しますが、アプリケーションの機能に寄与する追加ファイルの検索に失敗することがよくあります。
この問題を解決するために、以前のバージョンの PyInstaller は、環境変数を設定してファイルの場所を指定することに依存していました。追加のファイル。ただし、PyInstaller の最近の更新により、このアプローチが変更されました。 --onefile モードで外部ファイルにアクセスする現在の方法は、sys._MEIPASS 変数を使用します。
次のコードは、更新されたアプローチを使用して外部ファイルにアクセスする方法を示しています。
import sys def resource_path(relative_path): """ Get absolute path to resource, works for dev and for PyInstaller """ try: # PyInstaller creates a temp folder and stores path in _MEIPASS base_path = sys._MEIPASS except Exception: base_path = os.path.abspath(".") return os.path.join(base_path, relative_path)
By外部ファイルへの相対パスを使用してこの関数を呼び出すと、アプリケーションを開発環境から実行しているか、PyInstaller で生成されたファイルから実行しているかに関係なく、絶対パスを取得できます。実行可能ファイル。
以上がPyInstaller --onefile 実行可能ファイルで外部ファイルにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。