Diese Frage ist schön oefter aufgetaucht, aber ich bin leider aus den bisher gelesenen Antworten nicht schlau geworden, deshalb nochmal:
Wie kann ich ein im Editor Kate geschriebenes script so abspeichern, dass es einfach durch anklicken laeuft?
#!/usr/bin/python steht als erste Zeile und chmod a+x dateiname ist auch schon erfolgt. Trotzdem funzt es nicht.
Programm unter Linux ausführen
Grundlegend liegst du ja schon richtig.breathe_easy hat geschrieben:#!/usr/bin/python steht als erste Zeile und chmod a+x dateiname ist auch schon erfolgt. Trotzdem funzt es nicht.
Ich würde
Code: Alles auswählen
#!/usr/bin/env python
Was kommt denn nach einem Klick?
Führe sie mal mit
Code: Alles auswählen
./dateiname.py
Denn oft wird vergessen, dass ein Python-Programm selber dafür sorgen muss, das die Konsole offen bleibt. Ansonsten wird alles ausgeführt und die Konsole wieder geschlossen.
Anders natürlich, wenn du eine GUI verwendest.
MFG EnTeQuAk
Zuletzt geändert von EnTeQuAk am Donnerstag 16. August 2007, 14:29, insgesamt 1-mal geändert.
-
- User
- Beiträge: 58
- Registriert: Sonntag 29. Juli 2007, 18:34
Also aus der Konsole mit ./dateiname öffnen funktioniert einwandfrei. Nur das Anklicken funktioniert noch nicht. Warum anstelle #!usr/bin/python der Zusatz env?
Ich habe es aber mal ausprobiert, funktioniert trotzdem nicht.
mfg breathe_easy
Ich habe es aber mal ausprobiert, funktioniert trotzdem nicht.
mfg breathe_easy
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Kann es sein, dass es zwar funktioniert, du es aber nicht merkst? Wenn du keine GUI hast, wird das Programm wahrscheinlich einfach ausgefuehrt, ohne dass du die Konsolen-Ausgaben siehst, da evtl. nicht automatisch eine Konsole geoeffnet wird.breathe_easy hat geschrieben:Also aus der Konsole mit ./dateiname öffnen funktioniert einwandfrei. Nur das Anklicken funktioniert noch nicht.
Hoi,
gib' mal 'env' auf der Konsole ein. Na?
Wenn Du Python auf einem anderen Rechner nicht unter /usr/bin/python hast, aber sonst wo in PATH, dann sollte der shebang mit env immer noch gehen.
Bist Du Dir sicher, daß das Anklicken nicht funktioniert, wenn Du das Skript doch von der Konsole starten kannst? Was soll das Skript denn machen? Erwartest Du, daß irgendwas auf dem Bildschirm passiert?
Gruß,
Christian
PS EnTeQuAk hat das Ausrufezeichen im shebang vergessen, aber das ist hoffentlich nicht das Problem gewesen.
gib' mal 'env' auf der Konsole ein. Na?
Wenn Du Python auf einem anderen Rechner nicht unter /usr/bin/python hast, aber sonst wo in PATH, dann sollte der shebang mit env immer noch gehen.
Bist Du Dir sicher, daß das Anklicken nicht funktioniert, wenn Du das Skript doch von der Konsole starten kannst? Was soll das Skript denn machen? Erwartest Du, daß irgendwas auf dem Bildschirm passiert?
Gruß,
Christian
PS EnTeQuAk hat das Ausrufezeichen im shebang vergessen, aber das ist hoffentlich nicht das Problem gewesen.
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
...es sei denn, env ist nicht da, wo du es erwartest...CM hat geschrieben:Wenn Du Python auf einem anderen Rechner nicht unter /usr/bin/python hast, aber sonst wo in PATH, dann sollte der shebang mit env immer noch gehen.
Ja, zugegeben, so ganz sicher ist auch das nicht. Bin auch schon damit gegen die Wand gelaufen ...
Jedenfalls sicherer, als den Pfad absolut anzugeben (meine Meinung).
@breathe_easy:
Wenn du dir jetzt nicht ganz sicher bist, was wir immer mit Ausgaben etc. meinen, baue doch einfach mal am Ende deines Scriptes folgende Zeile ein, *sollte sie nicht existieren*:
Und führe es nochmal aus. (Auf der Konsole)
MFG EnTeQuAk
War ein versehen, habs verbessert.CM hat geschrieben: PS EnTeQuAk hat das Ausrufezeichen im shebang vergessen, aber das ist hoffentlich nicht das Problem gewesen.
@breathe_easy:
Wenn du dir jetzt nicht ganz sicher bist, was wir immer mit Ausgaben etc. meinen, baue doch einfach mal am Ende deines Scriptes folgende Zeile ein, *sollte sie nicht existieren*:
Code: Alles auswählen
if __name__ == '__main__':
print "Ich werde aufgerufen"
MFG EnTeQuAk
-
- User
- Beiträge: 58
- Registriert: Sonntag 29. Juli 2007, 18:34
Als erstes möchte ich mich für die schnellen und auch hilfreichen Antworten bedanken. Dies war mein erster Kontakt mit diesem Forum und ich habe nicht mit einem so tollen "Empfang" gerechnet. Danke!!
Mein Problem ist mittlerweile gelöst, indem ich einfach beim Anklicken des Programms "öffen mit"=> Python als Standarteinstellung gewählt habe.
MfG und in diesem Sinne breathe_easy!!!
Mein Problem ist mittlerweile gelöst, indem ich einfach beim Anklicken des Programms "öffen mit"=> Python als Standarteinstellung gewählt habe.
MfG und in diesem Sinne breathe_easy!!!