想像一下這個困境:您正在編寫一個使用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中文網其他相關文章!