Menggabungkan Fail Data dengan PyInstaller (--onefile): Menyelesaikan Isu Rujukan Fail
Apabila cuba untuk menggabungkan fail boleh laku dengan PyInstaller menggunakan - Pilihan -onefile, menggabungkan fail tambahan seperti imej dan ikon boleh terbukti mencabar. Isu ini berpunca daripada ketidakupayaan executable yang disusun untuk mengesan fail yang dirujuk ini.
Satu penyelesaian yang berpotensi terletak pada menetapkan pembolehubah persekitaran untuk laluan boleh laksana. Dalam versi PyInstaller terdahulu, ini dicapai menggunakan kaedah Shish. Walau bagaimanapun, kemas kini terbaru kepada PyInstaller telah menjadikan pendekatan ini usang.
Untuk menyelesaikan isu ini, laluan ke boleh laku kini disimpan dalam sys._MEIPASS. Kod berikut menunjukkan cara untuk mengakses laluan ini:
def resource_path(relative_path): """ Get absolute path to resource, works for dev and for PyInstaller """ try: # PyInstaller creates a temp folder and stores path in _MEIPASS base_path = sys._MEIPASS except Exception: base_path = os.path.abspath(".") return os.path.join(base_path, relative_path)
Dengan menggunakan pendekatan yang diubah suai ini, boleh laku yang disusun anda akan berjaya mencari dan menggunakan fail data yang diperlukan, memastikan kefungsian yang lancar.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Fail Data dengan Betul dengan Pilihan --onefile PyInstaller?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!