Maison > développement back-end > Tutoriel Python > Comment puis-je regrouper correctement les fichiers de données avec l'option --onefile de PyInstaller ?

Comment puis-je regrouper correctement les fichiers de données avec l'option --onefile de PyInstaller ?

Susan Sarandon
Libérer: 2024-12-18 13:38:10
original
965 Les gens l'ont consulté

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

Regroupement de fichiers de données avec PyInstaller (--onefile) : résolution des problèmes de référence de fichiers

Lors de la tentative de regroupement d'un exécutable avec PyInstaller à l'aide de - -onefile, l'incorporation de fichiers supplémentaires tels que des images et des icônes peut s'avérer difficile. Le problème vient de l'incapacité de l'exécutable compilé à localiser ces fichiers référencés.

Une solution potentielle réside dans la définition de la variable d'environnement pour le chemin de l'exécutable. Dans les versions antérieures de PyInstaller, cela était réalisé à l'aide de la méthode Shish. Cependant, les récentes mises à jour de PyInstaller ont rendu cette approche obsolète.

Pour résoudre ce problème, le chemin d'accès à l'exécutable est désormais stocké dans sys._MEIPASS. Le code suivant montre comment accéder à ce chemin :

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)
Copier après la connexion

En utilisant cette approche modifiée, votre exécutable compilé localisera et utilisera avec succès les fichiers de données requis, garantissant ainsi une fonctionnalité transparente.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal