IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

PyInstaller et subprocess.Popen


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2023
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2023
    Messages : 89
    Par défaut PyInstaller et subprocess.Popen
    Bonjour, j'ai fini mon projet est je souhaitais créer un fichier executable pour windows, j'ai donc utilisé PyInstaller pour le generer. Sa fonctionne, mon .exe est bien genéré.

    Le problème c'est que mon fichier python utilise 2 fichiers qui se lancent en parallèles et utilise ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    script_path = "upload.py"
    subprocess.Popen(["python3", script_path])
     
    script_path = "enregistre_gps_fichier_txt2.py"
    subprocess.Popen(["python3", script_path])
    Pour que mon .exe ne génère pas d'erreur je suis obligé de mettre dans le même répertoire les fichiers upload.py et enregistre_gps_fichier_txt2.py

    Je me pose donc la question sur comment faire pour me passer de ces fichiers, dois je les convertir en .exe par le meme prosédé?

    Quelqu'un pourrais t'il me renseigner? Merci

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    bonjour
    Citation Envoyé par carlita_84 Voir le message
    Pour que mon .exe ne génère pas d'erreur je suis obligé de mettre dans le même répertoire les fichiers upload.py et enregistre_gps_fichier_txt2.py
    Cette erreur arrive aussi si on n'utilise pas de ".exe" ! Il faut passer le chemin complet à ta fonction Popen.
    Pour cela, tu peux utiliser la constante __file__ puis, en extraire le chemin et ajouter les noms de fichiers.
    ps: pas compris pourquoi utiliser subprocess ! c'est même une mauvaise pratique. Il est normal en python de plutôt importer le fichier (puis de lancer la fonction principale).

  3. #3
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2023
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2023
    Messages : 89
    Par défaut
    J'utilise subprocess car j'ai mon programme principal qui utilise tkinter... Et j'ai 2 fichiers pythons qui fonctionnent en parallèles. L'un transfère par ftp des images et enregistre en base de données, le deuxième réceptionne les données du gps par le port usb. Mon programme principal utilise la caméra pour détecter des plaques...

    C 'est un peu compliquer a expliquer.

    Merci je vais tester

    Je précise que j'ai également que j'ai fais une librairie qui s'appelle fonction_sqlite3.py (je l'utilise dans mon programme principal avec "import fonction_sqlite3 #gere les requetes sql"
    ) et j'ai également une erreur si je ne place pas ce fichier dans le même répertoire que mon .exe

    C'est également un problème car j'aurais préféré que le code python ne soit pas visible a l'utilisateur

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 540
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 540
    Par défaut
    Rajoute tes scripts supplémentaires dans les scripts à empaqueter dans ton exe PyInstaller

  5. #5
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2023
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2023
    Messages : 89
    Par défaut
    J'ai essayé différentes commandes , je n'y arrive pas.

    Rajoute tes scripts supplémentaires dans les scripts à empaqueter dans ton exe PyInstaller
    Tu veux dire tout mettre dans mon fichier principal? Ou existe t'il une commande spéciale pour pyinstaller


    Pour le moment j'ai essayé ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    python3 -m PyInstaller --onefile -w main.py
    le w supprime l'affichage de la console

    onfile pour pour faire un fichier qui contient toute les librairies


    Je vais essayer de faire 3 fichiers .exe, un pour mon interface tkinter, un autre pour mon gps, et un dernier pour l'upload de mes fichiers. C 'est pas terrible comme solution mais je n'ai pas d'autre idée...

  6. #6
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    Citation Envoyé par carlita_84 Voir le message
    Tu veux dire tout mettre dans mon fichier principal? Ou existe t'il une commande spéciale pour pyinstaller
    Donc, en fait tu n'as même pas pris un moment pour lire la doc ! Sinon tu ne poserais pas cette question. inclure x fichiers dans l'exe est une pratique courante et est dans la doc.

    le code python ne soit pas visible a l'utilisateur
    Il faut savoir que cet exe n'est en fait qu'une simple archive. Par conséquent le code python est visible si l'utilisateur le désire.
    Citation Envoyé par doc
    Cacher le code source
    L'application fournie n'inclut aucun code source. Cependant, PyInstaller regroupe des scripts Python compilés ( .pycfichiers). Ceux-ci pourraient en principe être décompilés pour révéler la logique de votre code.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation de os.system ou subprocess.Popen
    Par othke dans le forum Général Python
    Réponses: 8
    Dernier message: 28/09/2011, 12h05
  2. cacher le terminal avec subprocess.popen
    Par bender86 dans le forum Général Python
    Réponses: 1
    Dernier message: 29/08/2011, 18h05
  3. probleme subprocess. Popen
    Par shaiHulud dans le forum Général Python
    Réponses: 9
    Dernier message: 25/02/2011, 10h04
  4. Réponses: 5
    Dernier message: 16/02/2011, 10h23
  5. PyInstaller et Subprocess
    Par 4Ur3L dans le forum Déploiement/Installation
    Réponses: 5
    Dernier message: 12/12/2010, 12h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo