2017-02-14 1 views
0

J'ai construit un exécutable avec py2exe. Au début, l'invite de commande est apparue lorsque j'ai exécuté le programme et est restée ouverte jusqu'à ce que je ferme le programme. Je cherche une solution et a trouvé quelque chose qui worked.I changé une ligne dans le code fichier de configuration (http://www.py2exe.org/index.cgi/Tutorial) de ceci:Comment éviter que cmd n'apparaisse et se ferme quand subprocess.popen() est exécuté dans un exécutable construit avec py2exe?

setup(console=['myapp.py']) 

à ceci:

setup(windows=['myapp.py']) 

Faire cela a donné lieu à l'invite de commande ne s'ouvre pas chaque fois que j'ai exécuté le programme.

Mais le problème que j'ai en ce moment est que chaque fois qu'une ligne de code comme celle-ci est exécutée (j'ai codé un programme pour créer automatiquement plusieurs tâches Windows) l'invite s'ouvre et se ferme.

subprocess.Popen('schtasks /Create /S PC_Name /RU User /RP Password /XML XML_file, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) 

Cela ne se produit pas si je lance le fichier py, que si j'utilise la bibliothèque py2exe pour construire le fichier exécutable.

L'application fonctionne bien, je fais ce qu'il est censé faire. Je veux juste arrêter l'invite de commande de surgir.

Merci d'avance!

Répondre

0

Essayez ce mauvais garçon:

def run_cmd(cmd): 
    fi, fo, fe = os.popen3(cmd) 
    response = "" 
    if fo: 
     for i in fo.readlines(): 
      response += i 
    if fe: 
     for i in fe.readlines(): 
      response += i 
    return response