Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Mengakses Fail Data Berpakatan dengan Betul dalam PyInstaller --onefile Executable?

Bagaimanakah Saya Boleh Mengakses Fail Data Berpakatan dengan Betul dalam PyInstaller --onefile Executable?

Mary-Kate Olsen
Lepaskan: 2024-12-14 16:39:10
asal
649 orang telah melayarinya

How Can I Properly Access Bundled Data Files in a PyInstaller --onefile Executable?

Menggabungkan Fail Data dengan PyInstaller (--onefile)

Menggabungkan fail data dalam satu fail boleh laku tunggal (--onefile) boleh menjadi penyelesaian praktikal untuk penggunaan aplikasi. Walau bagaimanapun, menghadapi masalah semasa menggunakan pilihan ini boleh mengecewakan. Dalam panduan ini, kami akan menangani masalah biasa di mana fail luaran seperti imej dan ikon gagal dimuatkan dengan betul walaupun disertakan dalam fail .spec.

Gambaran Keseluruhan Masalah

Penanya tidak dapat menggabungkan imej dan ikon ke dalam PyInstaller boleh laku mereka menggunakan pilihan --onefile. Walaupun aplikasi berfungsi dengan betul dengan --onedir, menggunakan --onefile mengakibatkan fail luaran tidak ditemui. Isu ini berterusan walaupun fail terdapat dalam direktori sementara yang dibuat semasa pelaksanaan boleh laku.

Penyelesaian

Dalam versi lama PyInstaller, pembolehubah persekitaran ditetapkan kepada tunjuk ke lokasi fail yang digabungkan. Walau bagaimanapun, dalam versi yang lebih baharu, tingkah laku ini telah berubah. Sebaliknya, laluan kini ditetapkan sebagai sys._MEIPASS.

Untuk menyelesaikan isu ini, kemas kini kod anda untuk menggunakan sys._MEIPASS untuk mengakses fail yang digabungkan:

import sys

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 kemas kini ini pendekatan, anda boleh mengakses fail yang digabungkan dengan pasti dalam boleh laku PyInstaller anda, walaupun menggunakan pilihan --onefile.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Fail Data Berpakatan dengan Betul dalam PyInstaller --onefile Executable?. 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