Shell-Skriptdatei - Übergeben mehrerer Parameter an den Interpreter

Shell-Skriptdatei - Übergeben mehrerer Parameter an den Interpreter

Ich führe ein Python-Skript aus, das in einer speziellen Umgebung ausgeführt werden muss. Daher würde ich das Programm wie folgt von meinem Arbeitsverzeichnis ( ~/project/src) aus ausführen:

python manage.py shell

Dadurch wird eine interaktive Shell geöffnet, in der ich mit der Eingabe meiner eigenen Befehle beginnen kann.

Ich habe eine Reihe weiterer Verwaltungsaufgaben, die ich in einem anderen Verzeichnis unterbringen möchte ( ~/project/admin). Dieverwalten.pyist sehr pingelig, wenn es darum geht, es aus dem Arbeitsverzeichnis auszuführen. Damit das Ganze funktioniert, habe ich ein Skript erstellt, das folgendermaßen beginnt:

#!/usr/bin/python ../src/manage.py shell

Dies bringt einige Probleme mit sich. Das erste ist, dass es nicht funktioniert:

/usr/bin/python: can't open file '"/../src/manage.py" shell': [Errno 2] No such file or directory
  • Wie geben Sie dem Interpreter mehrere Parameter an?
  • Wie ändere ich das Arbeitsverzeichnis?

Antwort1

Sie können dem Interpreter nur ein Argument angeben. Ich glaube auch nicht, dass Sie darin relative Verzeichnisse verwenden können.

Ich würde vorschlagen, dass Sie das, was Sie tun müssen, in ein Shell-Skript oder ein Python-Skript einbinden, das zum Aufrufen möglicherweise Popen() verwendet.

Antwort2

Vorausgesetzt, ich liege mit meiner Vermutung richtig, dass Sie sich in einer Django-Umgebung befinden …

Lesen Sie James Bennets Artikel überStandalone-Django-Skripte. Sehen Sie sich den Abschnitt „Setup_environ() verwenden“ an, in dem erwähnt wird, dass dies „genau die Art und Weise ist, wie Djangos eigenes Skript manage.py mit Einstellungen umgeht“.

Da ist einähnliche Frageauf Stackoverflow, das wird Ihnen wahrscheinlich auch helfen.

verwandte Informationen