2017-11-09 2 views
0

Ich arbeite an einer Umgebung, wo ich mein Python-Skript selbst aufrufen: ./myscript.py anstelle von python-2.4 -m trace -t /myscript.py.Verwenden Python-Modul Trace durch Shebang

So versuche ich Argumente in der shebang hinzufügen wie folgt:

#!/usr/bin/python-2.4 -m trace -t 

print "HELLO" 

print "HW" 

Aber ich habe die Fehlermeldung unter:

/usr/bin/python-2.4: module trace -t not found

Ist es möglich, in Python? Ich möchte dieses Trace-Modul in meinem Skript nicht behandeln.

+0

Aus Neugier, welche Art von System arbeiten Sie, die eine 13 Jahre alte Version von Python hat und dass Sie Ihre Datei direkt ausführen müssen, ohne den Interpreter-Namen in der Shell selbst zu verwenden? –

+0

Leider arbeite ich an Web-Anwendung, die nur Python 2.4 behandeln. – madago

Antwort

1

Dies ist auf den meisten Plattformen, insbesondere Linux, nicht einfach möglich. Der POSIX-Standard erfordert nur, dass eine einzige Befehlszeilenoption vom Shebang unterstützt wird. Dies kann bedeuten, dass die Argumente abgeschnitten sind, aber es kann auch dazu führen, dass alle Optionen als eine einzige Option übergeben werden, als wären sie in Anführungszeichen enthalten.

Der einfachste Weg, dies zu erreichen, besteht darin, einen zusätzlichen Wrapper zu erstellen. Zum Beispiel:

+0

Danke, aber ich kann keine Shell-Skripte für die Umgebung verwenden, nur Python 2.4 ist verfügbar. – madago