Ausführen eines Python-Skripts vom Terminal aus ohne die Erweiterung .py
14
Ich möchte ein Python - Skript aufrufen script.py , indem man einfach aus dem Terminal - Skript . Ist das möglich? Wenn das so ist, wie?
Ich weiß, dass ich es vermeiden kann, python script.py einzugeben, indem ich #! / Usr / bin / env python oben im Skript hinzufüge, aber ich muss immer noch das Suffix .py hinzufügen , um das Skript auszuführen.
Unix / Linux-Dateisysteme sind nicht wie Windows auf Erweiterungen angewiesen. Sie sollten nicht .pydas Ende einer Datei benötigen , um sie auszuführen.
Sie können die Datei ausführen, indem Sie sie entweder mit dem Interpreter aufrufen:
python ScriptFile
Oder indem Sie es als ausführbar markieren und den Interpreter in der ersten Zeile definieren (z #!/usr/bin/python. B. ).
Wenn Sie die Datei nicht ausführen können mit:
/Path/to/ScriptFile
Überprüfen Sie die Berechtigungen mit
ls -l ScriptFile
Möglicherweise müssen Sie das ausführbare Flag hinzufügen chmod, damit es für Sie ausgeführt wird.
Wenn Sie regelmäßig benutzerdefinierte Skripts verwenden, möchten Sie möglicherweise sicherstellen, dass das von Ihnen gespeicherte Verzeichnis der PATHUmgebungsvariablen hinzugefügt wird.
Die Datei befindet sich in ~ / workspace / python. Ich habe meinem Pfad ~ / workspace / python hinzugefügt, sudo chmod a + x script.py "ausgeführt und die shebang-Zeile (#! / Usr / bin / env python) oben im Skript hinzugefügt . ich kann das Skript durch Eingabe * script.py laufen , aber nur die Eingabe - Skript funktioniert nicht.
jmau5
2
In Unix / Linux ist alles eine Datei und antwortet auf ihren Dateinamen. Sie können Script.py nicht als Skript aufrufen. Versuchen Sie, die Datei von script.py in script umzubenennen, und es sollte Ihr Problem beheben.
Patrick
Entschuldigung, ich habe es falsch verstanden! Alles gelöst, danke!
jmau5
5
Die .pyErweiterung ist zum Ausführen des Skripts nicht erforderlich. Sie müssen nur das Skript ausführbar machen (z. B. durch Ausführen chmod a+x script) und die shebang-Zeile ( #!/usr/bin/env python) hinzufügen .
Optional können Sie einen Wrapper für Ihr Skript (eine .pyDatei) erstellen :
Sie haben beispielsweise ein Skript runme.py, mit dem Sie eine neue Datei runmezum Umbrechen des Skripts erstellen können :
#!/usr/bin/env pythonimport runme
und rufen Sie dann die runme.pyFunktionalität nur durch Aufrufen runmein der Shell auf.
Das ist für Multi - Plattform - Skripte, Ursache auf Windows - Plattform nützlich ist , können Sie zuweisen .pyDateien nur ohne Erweiterung und namentlich aufgerufen werden shebang im Header, aber auf der Linux - Plattform können Sie nicht und somit die Hülle herauskommt.
Die
.py
Erweiterung ist zum Ausführen des Skripts nicht erforderlich. Sie müssen nur das Skript ausführbar machen (z. B. durch Ausführenchmod a+x script
) und die shebang-Zeile (#!/usr/bin/env python
) hinzufügen .quelle
Optional können Sie einen Wrapper für Ihr Skript (eine
.py
Datei) erstellen :Sie haben beispielsweise ein Skript
runme.py
, mit dem Sie eine neue Dateirunme
zum Umbrechen des Skripts erstellen können :und rufen Sie dann die
runme.py
Funktionalität nur durch Aufrufenrunme
in der Shell auf.Das ist für Multi - Plattform - Skripte, Ursache auf Windows - Plattform nützlich ist , können Sie zuweisen
.py
Dateien nur ohne Erweiterung und namentlich aufgerufen werden shebang im Header, aber auf der Linux - Plattform können Sie nicht und somit die Hülle herauskommt.quelle