ホームページ > バックエンド開発 > Python チュートリアル > PyInstaller で生成された EXE でアプリケーション パスを見つけるにはどうすればよいですか?

PyInstaller で生成された EXE でアプリケーション パスを見つけるにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-26 12:23:13
オリジナル
430 人が閲覧しました

How to Find Your Application Path in PyInstaller-Generated EXEs?

コードの難問: PyInstaller で生成された Python EXE でのアプリケーション パスの特定

このジレンマを想像してみてください。PyInstaller を使用して EXE にバンドルされた Python アプリケーションをコーディングしているのですが、ディレクトリ内の .cfg ファイルに依存します。残念ながら、sys.path[0] を使用してパスを構築する通常の方法は、EXE では失敗します。アプリケーションのパスを確実に決定するための回避策はありますか?

それでは、素晴らしい解決策を紹介します:

import os
import sys

config_name = 'myapp.cfg'

# First, we check if the application is running as a script or as an EXE:
if getattr(sys, 'frozen', False):
    # If frozen as an EXE, we extract the path from sys.executable:
    application_path = os.path.dirname(sys.executable)
else:
    # If it's a script file (i.e., not frozen as an EXE), we use __file__:
    application_path = os.path.dirname(__file__)

# Finally, we join the path and the config file name to create the complete path:
config_path = os.path.join(application_path, config_name)
ログイン後にコピー

この巧妙なトリックは、Python の file 属性を利用します。スクリプトとして実行するときに定義され、sys モジュールの「frozen」属性は、アプリケーションがスクリプトとしてフリーズされているかどうかを示します。 EXE。両方のシナリオを適切に処理し、EXE 環境でも構成ファイルを見つけるための堅牢なソリューションを提供します。

以上がPyInstaller で生成された EXE でアプリケーション パスを見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート