Ich habe versucht, die Antwort zu googeln, aber ohne Glück.
Ich muss meinen Works Supercomputer-Server verwenden, aber damit mein Python-Skript ausgeführt werden kann, muss es über ein Shell-Skript ausgeführt werden.
Zum Beispiel möchte ich job.sh
ausführenpython_script.py
Wie kann dies erreicht werden?
python python_script.py
Ihr Shell-Skript einzufügen?python python_script.py
. Oder nur,./python_script.py
wenn das Drehbuch einen Scheiß bekommen hat.Antworten:
Stellen Sie einfach sicher, dass sich die ausführbare Python-Datei in Ihrer PATH-Umgebungsvariablen befindet, und fügen Sie sie dann in Ihr Skript ein
Einzelheiten:
chmod u+x job.sh
./job.sh
quelle
python --version
, und Sie können die Version mit erzwingenpython3 hello.py
.source PATH/TO/VENV/bin/activate
dann anrufenpython python_script.py
/path/to/Python: can't open file '/path/to/script': [Errno 1] Operation not permitted
Gibt es eine Möglichkeit, meinen Python-Code in das Bash-Skript aufzunehmen?Methode 1 - Erstellen Sie ein Shell-Skript:
Angenommen, Sie haben eine Python-Datei.
hello.py
Erstellen Sie eine Datei mit dem Namenjob.sh
, die Folgendes enthältMarkieren Sie es als ausführbar mit
dann starte es
Methode 2 (BESSER) - Lassen Sie die Python selbst von der Shell laufen:
Ändern Sie Ihr Skript
hello.py
und fügen Sie dies als erste Zeile hinzuMarkieren Sie es als ausführbar mit
dann starte es
quelle
#!/usr/bin/env python
. Denken Sie daran, sicherzustellen, dass Sie auf die richtige Python-Version + den richtigen Pfad für Ihr System verweisen!Imho, schreibend
Ist ganz falsch, vor allem in diesen Tagen. Welche Python? Python2.6? 2,7? 3,0? 3.1? In den meisten Fällen müssen Sie die Python-Version im Shebang-Tag der Python-Datei angeben. Ich ermutige zu verwenden
aus Kompatibilitätsgründen.In einem solchen Fall ist es viel besser, das Skript ausführbar zu haben und es direkt aufzurufen:
Auf diese Weise wird die von Ihnen benötigte Python-Version nur in eine Datei geschrieben. Die meisten Systeme haben heutzutage in der Zwischenzeit Python2 und Python3, und es kommt vor, dass der Symlink Python auf Python3 verweist , während die meisten Leute erwarten, dass er auf Python2 verweist .
quelle
python script.py param
?./abc.py -h
Speichern Sie das folgende Programm als
print.py
:Dann im Terminaltyp:
quelle
Dies funktioniert am besten für mich: Fügen Sie dies oben im Skript hinzu:
(C: \ Python27 \ python.exe ist der Pfad zur python.exe auf meinem Computer.) Führen Sie dann das Skript aus über:
quelle
Das funktioniert bei mir:
Erstellen Sie einen neuen Shell-Dateijob. Nehmen wir also an:
touch job.sh
und fügen Sie einen Befehl hinzu, um das Python-Skript auszuführen (Sie können diesem Python sogar Befehlszeilenargumente hinzufügen, normalerweise definiere ich meine Befehlszeilenargumente vor).chmod +x job.sh
Fügen
job.sh
Sie im Inneren die folgenden py-Dateien hinzu, sagen wir:python_file.py argument1 argument2 argument3 >> testpy-output.txt && echo "Done with python_file.py"
python_file1.py argument1 argument2 argument3 >> testpy-output.txt && echo "Done with python_file1.py"
Done with python_file.py
Done with python_file1.py
Ich benutze dies normalerweise, wenn ich mehrere Python-Dateien mit unterschiedlichen, vordefinierten Argumenten ausführen muss.
Hinweis: Nur ein kurzer Überblick darüber, was hier vor sich geht:
python python_file.py
, schlicht und einfach. Als nächstes druckt >> die Ausgabe dieser .py-Datei und speichert sie in der Datei testpy-output.txt.quelle
Sie sollten es als
python scriptname.py
zStellen Sie außerdem sicher, dass das Skript über Berechtigungen zum Ausführen verfügt.
Sie können es mithilfe von ausführbar machen
chmod u+x scriptname.py
.quelle
Ich benutze dies und es funktioniert gut
quelle
Da die anderen Beiträge alles sagen (und ich auf diesen Beitrag gestoßen bin, als ich nach Folgendem gesucht habe).
So führen Sie ein Python-Skript aus einem anderen Python-Skript aus:
Python 2:
Python 3:
und Sie können Argumente liefern, indem Sie andere bereitstellen
sys.argv
quelle