Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Menggabungkan Fail Data dengan Betul dengan Pilihan --onefile PyInstaller?

Bagaimana untuk Menggabungkan Fail Data dengan Betul dengan Pilihan --onefile PyInstaller?

Mary-Kate Olsen
Lepaskan: 2024-12-15 18:17:16
asal
390 orang telah melayarinya

How to Bundle Data Files Correctly with PyInstaller's --onefile Option?

PyInstaller Data Bundling dengan --onefile: Menangani Sumber Hilang

Dalam proses mencipta boleh laku padat (EXE) dengan PyInstaller menggunakan Bendera '--onefile', pengguna sering menghadapi cabaran dalam menggabungkan fail data tambahan seperti imej atau ikon. Isu ini timbul apabila EXE yang disusun gagal untuk mencari sumber yang dirujuk.

Satu penyelesaian tertentu, seperti yang dicadangkan oleh Shish, melibatkan penetapan pembolehubah persekitaran sebelum kaedah larian dalam skrip:

import os
os.environ["IMAGE_PATH"] = os.path.join(os.path.dirname(os.path.abspath(__file__)), "images")
Salin selepas log masuk

Pendekatan ini, walau bagaimanapun, mungkin tidak berfungsi dengan versi PyInstaller yang lebih baharu. Sebaliknya, penyelesaian alternatif ialah menggunakan pembolehubah sys._MEIPASS, yang menyediakan laluan ke direktori sementara yang dibuat oleh PyInstaller semasa masa jalan:

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 mentakrifkan fungsi tersuai seperti ini, anda boleh mendapatkan semula secara dinamik laluan mutlak ke fail data anda tidak kira sama ada anda menjalankan skrip dalam mod pembangunan atau sebagai EXE yang disusun. Ingat untuk menentukan laluan relatif kepada sumber anda dalam parameter relative_path.

Atas ialah kandungan terperinci Bagaimana untuk 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