Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1287 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  Paramètres pour .exe de py2exe

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Paramètres pour .exe de py2exe

n°1899629
gennosuke
Posté le 26-06-2009 à 20:44:03  profilanswer
 

Bonjour,
j'ai un programme main.py qui a besoin d'un paramètre par en entrée.
 
Par python, je le lance comme d'habitude :
python main.py par
 
et dans main.py, je le récupère ainsi :
import sys
param=int(sys.argv[1])
 
J'ai créé un main.exe par py2exe :
 
from distutils.core import setup
import py2exe
setup(
    windows=[
        dict(
            script='main.py'
            )
    ]
)
 
évidemment, en lançant cet exe, j'ai une erreur car il manque la paramètre.
Mais comment le spécifier au .exe ?
 
De plus, main.exe doit être lancé N fois en boucle, avec en entrée par1, ..., parN. Comment coder cela ?
 
Pour d'autres programmes, j'utilise raw_input() pour lire des paramètres, mais idem, une fois l'exe créé par py2exe, ce n'est plus possible. Y-a-t'il d'autres moyens ?
 
Merci par avance .

mood
Publicité
Posté le 26-06-2009 à 20:44:03  profilanswer
 

n°1899757
Sve@r
Posté le 27-06-2009 à 22:12:21  profilanswer
 

gennosuke a écrit :

Bonjour,
j'ai un programme main.py qui a besoin d'un paramètre par en entrée.
 
Par python, je le lance comme d'habitude :
python main.py par
 
et dans main.py, je le récupère ainsi :
import sys
param=int(sys.argv[1])
 
J'ai créé un main.exe par py2exe :
 
from distutils.core import setup
import py2exe
setup(
    windows=[
        dict(
            script='main.py'
            )
    ]
)
 
évidemment, en lançant cet exe, j'ai une erreur car il manque la paramètre.
Mais comment le spécifier au .exe ?


Ben tu le passes en ligne de commande !!!
main.exe toto
 

gennosuke a écrit :

De plus, main.exe doit être lancé N fois en boucle, avec en entrée par1, ..., parN. Comment coder cela ?


Bah, autant coder dans ton main.py une boucle de traitement sur chaque paramètre !!!
 
Ou alors tu crées un superMain.py qui appelle un system("main.exe" )
 

gennosuke a écrit :

Pour d'autres programmes, j'utilise raw_input() pour lire des paramètres, mais idem, une fois l'exe créé par py2exe, ce n'est plus possible. Y-a-t'il d'autres moyens ?


Je comprends absolument pas ton problème. J'ai créé un "a.py" qui contient ceci:

Code :
  1. #!/usr/bin/env python
  2. # coding: Latin-1 -*-
  3.  
  4. import sys
  5. print sys.argv[1]
  6. var=raw_input("var ?" )
  7. print var


 
Puis je le passe à travers mon créateur d'exécutable

Code :
  1. #!/usr/bin/env python
  2. # coding: Latin-1 -*-
  3. # Module de création d'exécutable Windows
  4. # Nécessite l'outil py2exe
  5.  
  6. import sys
  7. import os
  8. import stat
  9. import shutil
  10. from distutils.core import setup
  11. import py2exe
  12.  
  13. # Préparation environnement
  14. if len(sys.argv) < 2:
  15.     sys.argv.append("py2exe" )
  16. else:
  17.     if sys.argv[1] != "py2exe": sys.argv[1]="py2exe"
  18.  
  19. # Création exécutable
  20. setup(
  21.     console=[{"script" : "a.py"}],
  22. )


Il me génère un dossier "dist" qui contient "a.exe". J'appelle '"a.exe toto" il m'affiche bien toto puis me demande une variable via un raw_input() et m'affiche correctement ce que je lui rentre !!!


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1900007
gennosuke
Posté le 29-06-2009 à 10:11:09  profilanswer
 

OK, merci pour les conseils.
Avec py2exe, je vais faire un .exe d'un supermain.py paramétrable (valeur de N), qui lance N fois main.exe paramétrable (compteur entre 1 et N).
En effet, j'avais tenté l'exemple du a.exe avec paramètres en ligne de commande. Ca marche, normal.
 
Mais comment obtenir l'équivalent de la fenêtre du raw_input en double-cliquant le a.exe, pour récupérer le premier paramètre ?
 
Ce .exe sera utilisé sur des PC sans python, par des utilisateurs qui ne vont pas passer par l'invite de commande.
J'ai aussi fait une macro excel qui génère N .bat pour lancer le .exe, mais sous Unix, bien sûr, pas utilisable.

n°1900196
gennosuke
Posté le 29-06-2009 à 15:33:56  profilanswer
 

Réponse :
http://www.mail-archive.com/pygame [...] 04830.html
il faut passer par le mode console (au lieu de windows) avec py2exe.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  Paramètres pour .exe de py2exe

 

Sujets relatifs
VBA Excel: comment créer un sub utilisant des parametres ?[Java] Externaliser les parametres dans un xml
Contenu d'un TextArea dans paramètres fonctionsIntégrer 2 animation flash en fonction des paramètres de l'url
Intégrer 2 animation flash en fonction des paramètres de l'url[VBA] remettre les paramètres pas défaut en cas de plantage ?
Avoir une fct unique pour plusieurs events avec paramètres différents[VB.NET] Communiquer avec un service Windows par l'envoi de paramètres
[Py2exe] Problème de compilationcomment bien gérer les parametres de fonctions en bash ?
Plus de sujets relatifs à : Paramètres pour .exe de py2exe


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR