ホームページ >バックエンド開発 >Python チュートリアル >pyInstaller で生成された EXE 内のアプリケーション パスを取得するにはどうすればよいですか?
プログラミングの領域では、アプリケーションの実行コンテキストを理解することが重要です。特に、pyInstaller を使用して作成されたアプリケーションなど、バンドルされたアプリケーションを扱う場合はそうです。一般的な課題の 1 つは、アプリケーションがアプリケーションと並行して配置されている構成ファイルにアクセスする必要がある場合に発生します。この記事では、pyInstaller で生成された EXE 内のアプリケーションのパスを正確に取得することで、この問題を解決する手法を検討します。
従来の方法を使用してアプリケーションに隣接するファイルへのパスを構築する場合、以下のコード スニペットに示すように:
import os config_name = 'myapp.cfg' config_path = os.path.join(sys.path[0], config_name)
pyInstaller EXE のコンテキストではジレンマに遭遇します。通常、アプリケーションを含むディレクトリが含まれる sys.path リストは空です。これに対処するために、スクリプトと凍結された実行可能ファイルを区別する、より堅牢なアプローチを採用しています。
import os import sys config_name = 'myapp.cfg' # Distinguish script file from frozen exe if getattr(sys, 'frozen', False): application_path = os.path.dirname(sys.executable) elif __file__: application_path = os.path.dirname(__file__) config_path = os.path.join(application_path, config_name)
このコード内で、「sys」モジュールの「凍結」属性を検査します。 True の場合、アプリケーションは凍結された実行可能ファイルとして実行されていると推測され、そのパスは「sys.executable」から導出されます。逆に、file が存在する場合、アプリケーションはスクリプト モードで実行されており、そのパスは __file__ から派生すると結論付けられます。
このメソッドを使用すると、アプリケーションのパスの正常な取得が保証され、次のことが可能になります。重要な設定ファイルなどの相対ファイルへのアクセス。
以上がpyInstaller で生成された EXE 内のアプリケーション パスを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。