Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menggabungkan Fail Data dengan Betul dengan Pilihan --onefile PyInstaller?

Bagaimanakah Saya Boleh Menggabungkan Fail Data dengan Betul dengan Pilihan --onefile PyInstaller?

Susan Sarandon
Lepaskan: 2024-12-18 13:38:10
asal
965 orang telah melayarinya

How Can I Properly Bundle Data Files with PyInstaller's --onefile Option?

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)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan