Maison > développement back-end > Tutoriel Python > Comment trouver le chemin de votre application dans les EXE générés par PyInstaller ?

Comment trouver le chemin de votre application dans les EXE générés par PyInstaller ?

Barbara Streisand
Libérer: 2024-11-26 12:23:13
original
431 Les gens l'ont consulté

How to Find Your Application Path in PyInstaller-Generated EXEs?

Quandaire de code : localisation du chemin d'application dans un EXE Python généré par PyInstaller

Imaginez ce dilemme : vous codez une application Python intégrée dans un EXE avec PyInstaller, et elle dépend d'un fichier .cfg dans son répertoire. Malheureusement, la méthode habituelle de construction du chemin à l’aide de sys.path[0] échoue dans l’EXE. Existe-t-il une solution de contournement pour déterminer de manière fiable le chemin de l'application ?

Eh bien, voici une solution brillante :

import os
import sys

config_name = 'myapp.cfg'

# First, we check if the application is running as a script or as an EXE:
if getattr(sys, 'frozen', False):
    # If frozen as an EXE, we extract the path from sys.executable:
    application_path = os.path.dirname(sys.executable)
else:
    # If it's a script file (i.e., not frozen as an EXE), we use __file__:
    application_path = os.path.dirname(__file__)

# Finally, we join the path and the config file name to create the complete path:
config_path = os.path.join(application_path, config_name)
Copier après la connexion

Cette astuce astucieuse exploite l'attribut file de Python, qui est uniquement défini lors de l'exécution en tant que script, et l'attribut « gelé » dans le module sys, qui indique si l'application est gelée en tant qu'EXE. Il gère gracieusement les deux scénarios, fournissant une solution robuste pour localiser votre fichier de configuration même dans un environnement EXE.

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