Maison  >  Article  >  développement back-end  >  Comment déterminer le chemin de l'application dans les EXE Python générés par pyInstaller ?

Comment déterminer le chemin de l'application dans les EXE Python générés par pyInstaller ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-12 13:45:02836parcourir

How to Determine Application Path in Python EXEs Generated by pyInstaller?

Détermination du chemin d'application dans les EXE Python générés par pyInstaller

Lors de la création d'applications Python en tant qu'EXE à l'aide de pyInstaller, il devient nécessaire de localiser des fichiers spécifiques relatifs au chemin de l'application. Pour les applications qui nécessitent des fichiers de configuration adjacents à l'exécutable, la méthode conventionnelle d'utilisation de sys.path[0] échoue dans les scénarios EXE.

Pour résoudre ce problème, une approche plus fiable est utilisée :

import os
import sys

config_name = 'myapp.cfg'

# Check if the application is a script or a frozen EXE
if getattr(sys, 'frozen', False):
    application_path = os.path.dirname(sys.executable)
elif __file__:
    application_path = os.path.dirname(__file__)

config_path = os.path.join(application_path, config_name)

La fonction getattr() est utilisée pour déterminer si l'attribut 'gelé' est défini dans sys, indiquant un contexte EXE. Si tel est le cas, le chemin de l'application est défini sur le répertoire contenant l'exécutable EXE. Sinon, il revient à utiliser l'attribut __file__ du module Python en cours d'exécution.

En incorporant cette approche, les applications peuvent récupérer systématiquement leur chemin actuel, qu'elles soient exécutées en tant que scripts ou converties en EXE pyInstaller. Cela garantit que les fichiers de configuration et autres ressources associées sont toujours accessibles, même dans les environnements 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!

Déclaration:
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