首頁  >  文章  >  後端開發  >  如何在 PyInstaller 生成的 EXE 中尋找應用程式路徑?

如何在 PyInstaller 生成的 EXE 中尋找應用程式路徑?

Barbara Streisand
Barbara Streisand原創
2024-11-26 12:23:13380瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn