2017-07-03 3 views
0

Angenommen, ich habe ein Befehlszeilenprogramm in Python 2.7 geschrieben. Das Befehlszeilendienstprogramm ruft eine Funktion auf, die ein anderes Befehlszeilenprogramm ausführt. Der Befehl wird wie folgt ausgeführt:Die beste Möglichkeit, eine Abhängigkeit in Pyinstaller zu einem CLI-Programm anzugeben, das mit Subprocess aufgerufen wird

import subprocess 
def exec_command(*args): 
    process = subprocess.Popen(args,stdout=subprocess.PIPE) 
    output, error = process.communicate() 
    return output, error 

Ich möchte das Programm-Paket mit PyInstaller. Ich habe die Anweisungen befolgt eine binäre Abhängigkeit für das Hinzufügen und führe pyinstaller wie folgt aus:

pyinstaller cli.py --name <new_name> --add-binary <path_to_exec>:. 

Dies funktioniert, wenn ich das Programm als Ordner packen und ich kann dann die ausführbare Datei in meinem verpackten Programm durch einfache rufe eine Liste vorbei wie folgt:

Allerdings funktioniert das nicht, wenn ich das Programm als Datei verpacke. Wenn ich so bekomme ich folgende Fehlermeldung:

OSError: [Errno 2] No such file or directory 
Failed to execute script cli 

Also meine Frage ist, wie kann ich dieses Skript in meinem Kommandozeilen-Tool aufrufen, wenn als Datei verpackt?

Antwort

0

Zuletzt wurde diese post gefunden, die beschreibt, wie man auf den temporären Ordner zugreift, der von pyinstaller erstellt wurde, wenn er als einzelne Dateianwendung gebündelt ist. Die Funktion funktioniert auch für den Fall, dass Sie eine Ordner-Paket-Anwendung haben.

Verwandte Themen