Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème avec pyinstaller

problème d'exécution du fichier exécutable crée par pyinstaller

    13 mai 2021 à 13:58:45

    salut;

    je viens de terminer un petit projet avec python de version 3.9.4: quand j'exécute le fichier python (index.py) sous visual studio code tous marche comme je veux sans aucun problème.

    j'ai convertie ce fichier python avec pyinstaller de version 4.3 avec deux méthodes :

    première méthode  avec la commande sous cmd : 

    pyinstaller index.py

    j'ai comme résultat le dossier  "dist" contenant le fichier exe et d'autres fichiers et sous dossiers comme dans cette image.

    deuxième méthode  avec la commande suivante :

    pyinstaller --onefile index.py

    j'ai un seul fichier index.exe dans le dossier "dist"

    quand j'exécute le fichier index.exe pour la première méthode tous va bien , et en particulier il ya création des dossiers pour la base de donnée (sous sqlite3)., alors que pour la deuxième méthode le fichier exécutable s'exécute correctement sauf il n'ya création des dossiers de la base de donnée

    est ce qu'il ya une solution a ce problème pour la deuxième méthode car j'ai envie que l'exécutable soit un seul fichier plutôt que tout un dossier engendrant plusieurs fichiers concernant les librairies importées.

    fonction pour creer les dossiers pour la base de donnee, et la sauvegarde des donnees dans des fichiers excel

    def copy_of_save_data(self):
            print("chemin d'acces a db cree.")
            path= os.path.dirname(os.path.realpath(__file__))#récupérer le répertoire courant
            # a) creations des  dossiers de sauvegarde de la base de données  pour l'ILs 35R :      
            os.makedirs(path+'\\data_save\\database\\ILS', exist_ok=True)
            print("data_save directory is created at \'\\data_save\\database\\ILS\'")
            # b)creations des sous dossiers de sauvegarde de copie pour l'ILs 35R :
            for loop in ('cev\\liste_corrections_totals','cev\\liste_corrections_confirmees','cev\\liste_corrections_cette_annee','cev\\liste_corrections_periode_choisie','alarmes_axe\\liste_alarmes_axe_totales','alarmes_axe\\liste_alarmes_axe_confirmees','alarmes_axe\\liste_alarmes_axe_ce_mois','alarmes_axe\\liste_alarmes_axe_cette_annee','alarmes_axe\\liste_alarmes_axe_periode_choisie','alarmes_faisceau\\liste_alarmes_faisceau_totales','alarmes_faisceau\\liste_alarmes_faisceau_confirmees','alarmes_faisceau\\liste_alarmes_faisceau_ce_mois','alarmes_faisceau\\liste_alarmes_faisceau_cette_annee','alarmes_faisceau\\liste_alarmes_faisceau_periode_choisie') :
                try:
                    os.makedirs(path+'\\data_save\\datafile\\ILS35R\\loc35R\\'+loop)
                except OSError:
                    pass
            for loop in ('cev\\liste_corrections_totals','cev\\liste_corrections_confirmees','cev\\liste_corrections_cette_annee','cev\\liste_corrections_periode_choisie','alarmes_axe\\liste_alarmes_axe_totales','alarmes_axe\\liste_alarmes_axe_confirmees','alarmes_axe\\liste_alarmes_axe_ce_mois','alarmes_axe\\liste_alarmes_axe_cette_annee','alarmes_axe\\liste_alarmes_axe_periode_choisie','alarmes_faisceau\\liste_alarmes_faisceau_totales','alarmes_faisceau\\liste_alarmes_faisceau_confirmees','alarmes_faisceau\\liste_alarmes_faisceau_ce_mois','alarmes_faisceau\\liste_alarmes_faisceau_cette_annee','alarmes_faisceau\\liste_alarmes_faisceau_periode_choisie') :
                try:
                    os.makedirs(path+'\\data_save\\datafile\\ILS35R\\gp35R\\'+loop)
                except OSError:
                    pass
            # c) creations des sous dossiers de sauvegarde de copie pour l'ILs 35L :
            for loop in ('cev\\liste_corrections_totals','cev\\liste_corrections_confirmees','cev\\liste_corrections_cette_annee','cev\\liste_corrections_periode_choisie','alarmes_axe\\liste_alarmes_axe_totales','alarmes_axe\\liste_alarmes_axe_confirmees','alarmes_axe\\liste_alarmes_axe_ce_mois','alarmes_axe\\liste_alarmes_axe_cette_annee','alarmes_axe\\liste_alarmes_axe_periode_choisie','alarmes_faisceau\\liste_alarmes_faisceau_totales','alarmes_faisceau\\liste_alarmes_faisceau_confirmees','alarmes_faisceau\\liste_alarmes_faisceau_ce_mois','alarmes_faisceau\\liste_alarmes_faisceau_cette_annee','alarmes_faisceau\\liste_alarmes_faisceau_periode_choisie') :
                try:
                    os.makedirs(path+'\\data_save\\datafile\\ILS35L\\loc35L\\'+loop)
                except OSError:
                    pass
            for loop in ('cev\\liste_corrections_totals','cev\\liste_corrections_confirmees','cev\\liste_corrections_cette_annee','cev\\liste_corrections_periode_choisie','alarmes_axe\\liste_alarmes_axe_totales','alarmes_axe\\liste_alarmes_axe_confirmees','alarmes_axe\\liste_alarmes_axe_ce_mois','alarmes_axe\\liste_alarmes_axe_cette_annee','alarmes_axe\\liste_alarmes_axe_periode_choisie','alarmes_faisceau\\liste_alarmes_faisceau_totales','alarmes_faisceau\\liste_alarmes_faisceau_confirmees','alarmes_faisceau\\liste_alarmes_faisceau_ce_mois','alarmes_faisceau\\liste_alarmes_faisceau_cette_annee','alarmes_faisceau\\liste_alarmes_faisceau_periode_choisie') :
                try:
                    os.makedirs(path+'\\data_save\\datafile\\ILS35L\\gp35L\\'+loop)
                except OSError:
                   pass

    code d'insertion de la fonction dans le contructeur

    class MainApp(QMainWindow,Ui_MainWindow) :
        def __init__(self,parent=None) :
    
            super(MainApp,self).__init__(parent)
    
            QMainWindow.__init__(self)
    
            self.setupUi(self)
    
            self.win_UI() 
                
            self.copy_of_save_data()      
           

    merci pour l'aide

    • Partager sur Facebook
    • Partager sur Twitter

    problème avec pyinstaller

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown