Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mencari Laluan Aplikasi Anda dalam EXE Dijana PyInstaller?

Bagaimana untuk Mencari Laluan Aplikasi Anda dalam EXE Dijana PyInstaller?

Barbara Streisand
Barbara Streisandasal
2024-11-26 12:23:13380semak imbas

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

Kuantiti Kod: Mencari Laluan Aplikasi dalam PyInstaller-Generated Python EXE

Bayangkan dilema ini: anda sedang mengodkan aplikasi Python yang digabungkan ke dalam EXE dengan PyInstaller, dan ia bergantung pada fail .cfg dalam direktorinya. Malangnya, kaedah biasa membina laluan menggunakan sys.path[0] gagal dalam EXE. Adakah terdapat penyelesaian untuk menentukan laluan aplikasi dengan pasti?

Nah, berikut ialah penyelesaian yang cemerlang:

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)

Helah pintar ini memanfaatkan atribut fail Python, yang hanya ditakrifkan semasa berjalan sebagai skrip, dan atribut 'beku' dalam modul sys, yang menunjukkan jika aplikasi dibekukan sebagai EXE. Ia mengendalikan kedua-dua senario dengan anggun, menyediakan penyelesaian yang mantap untuk mencari fail konfigurasi anda walaupun dalam persekitaran EXE-fied.

Atas ialah kandungan terperinci Bagaimana untuk Mencari Laluan Aplikasi Anda dalam EXE Dijana PyInstaller?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn