Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mendapatkan Laluan Aplikasi dalam EXE Dijana pyInstaller?
Dalam bidang pengaturcaraan, memahami konteks pelaksanaan aplikasi adalah penting. Terutama apabila berurusan dengan aplikasi yang digabungkan, seperti yang dibuat menggunakan pyInstaller. Satu cabaran biasa timbul apabila aplikasi memerlukan akses kepada fail konfigurasi yang terletak di sebelahnya. Dalam artikel ini, kami akan meneroka teknik untuk menyelesaikan isu ini dengan mendapatkan semula laluan aplikasi dengan tepat dalam EXE yang dijana pyInstaller.
Apabila menggunakan kaedah konvensional untuk membina laluan ke fail bersebelahan dengan aplikasi, seperti yang digambarkan dalam coretan kod di bawah:
import os config_name = 'myapp.cfg' config_path = os.path.join(sys.path[0], config_name)
Seseorang menghadapi dilema dalam konteks pyInstaller EXE. Senarai sys.path, yang biasanya mengandungi direktori yang mengandungi aplikasi, kosong. Untuk menangani perkara ini, kami menggunakan pendekatan yang lebih mantap yang membezakan antara skrip dan boleh laku beku.
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)
Dalam kod ini, kami memeriksa atribut 'beku' modul 'sys'. Jika ia Benar, kami mengandaikan bahawa aplikasi itu berjalan sebagai boleh laku beku dan memperoleh laluannya daripada 'sys.executable'. Sebaliknya, jika fail wujud, kami membuat kesimpulan bahawa aplikasi sedang berjalan dalam mod skrip, dan laluannya diperoleh daripada __file__.
Menggunakan kaedah ini menjamin kejayaan mendapatkan semula laluan aplikasi, membolehkan akses kepada fail relatif seperti fail konfigurasi yang penting.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Laluan Aplikasi dalam EXE Dijana pyInstaller?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!