Programme ausführen unter Linux ?

Probleme bei der Installation?
Antworten
Benutzeravatar
kaytec
User
Beiträge: 608
Registriert: Dienstag 13. Februar 2007, 21:57

Habe hier im Forum schon gesucht, doch irgendwie finde ich die Lösung nicht!?Meine Python-Programme lassen sich nicht mit anklicken starten, sondern nur von der Konsole aus mit

z.b.: python test.py

Ich habe sie schon ausführbar gemacht und den Pfad angegeben

z.b.: #!/usr/bin/env python
#!/usr/bin/python

Programme mit Tkinter-Oberfläche starten ohne Probleme und da gibt es keine Pfadangaben und sie müssen nicht ausführbar sein. Ist eigentlich nicht so tragisch, doch falls ich mit dem Browser eines öffnen möchte, dann geht das natürlich auch nicht.

Code: Alles auswählen


#!/usr/bin/env python
# -*- coding: utf-8 -*-
from time import*
z=localtime()
print 'Content-Type: text/html'
print
print '<html> <body>'
print '<h2> Die aktuelle Uhrzeit <h2>'
print 'Es ist', z[3], 'Uhr und', z[4],'Minuten.'
print '<html> <body>

Ich verwende Ubuntu 7.04, Feisty Fawn

gruss frank
Volvic
User
Beiträge: 30
Registriert: Donnerstag 14. Juni 2007, 05:18

naja solange dein browser kein python kann wird er das nicht ausführen können. ich kann dir als einsteiger folgendes tutorial empfehlen, mit dem ich selber python gelernt habe: http://abop-german.berlios.de/read/index.html
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Das ist schon richtig so. Wenn du eine Konsole haben willst dann musst du das auch angeben. Der Weg damit das dein GUI macht ist ein *.desktop File zu schreiben.

>> http://standards.freedesktop.org/deskto ... ec/latest/
lord.hong
User
Beiträge: 26
Registriert: Samstag 19. August 2006, 12:32

Davon abgesehen sind in dem Code-Beispiel auch noch HTML Syntax-Fehler vorhanden.

So wird kein HTML Tag bei dir geschlossen <h2>...</h2> und der html und body Tag werden auch noch vertauscht:

<html>
<body>
....
</body>
</html>

Die Print-Angabe mit dem "Content-Type: text/htm" scheint mir auch nicht so zu stimmen. Das wird ein Browser so nicht verstehen.

Ich würde es erst mal so versuchen und nochmal nachschlagen, wie der "Content-Type: text/htm" gesetzt werden muss.

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from time import *

z = localtime()

print '<html>'
print '<body>'
print '<h2> Die aktuelle Uhrzeit </h2>'
print 'Es ist ', z[3], ' Uhr und ', z[4],' Minuten.'
print '</body>'
print '</html>'
Benutzeravatar
kaytec
User
Beiträge: 608
Registriert: Dienstag 13. Februar 2007, 21:57

Danke an alle Antworter !

@ lord.hong
Ich habe das Beispiel falsch aus einem Buch abgeschrieben :oops:
Ich muß also den code so ändern, damit es Firefox versteht ? Firefox ist ein Browser der es aber könnte?

@ veers
Na ich komme aus der Windowswelt und da musste man die Systemvariable setzen und man konnte es einfach anklicken. Geht bei Linux also nicht ? Es ist normal, in der Konsole "kaytec@kaytec:~$ python test.py" zu schreiben? Warum gebe ich aber den Pfad zum Interpreter an "#!/usr/bin/python" , wenn es gar nicht nötig ist ?

@Volvic
Danke für den Link - ich werde es mal lesen und hoffe es bringt mir mehr Klarheit !

gruss und dank frank
Zuletzt geändert von kaytec am Sonntag 1. Juli 2007, 10:12, insgesamt 1-mal geändert.
Benutzeravatar
Mr_Snede
User
Beiträge: 387
Registriert: Sonntag 8. Februar 2004, 16:02
Wohnort: D-Dorf, Bo

Hallo kaytec

Im Wiki zum Debianforum.de haben wir ganz frisch eine Seite zum Umgang mit scripten unter Linux
--> http://wiki.debianforum.de/ZumUmgangMitScripten

Ich hoffe es hilft.
Bei vertändnisproblemen bitte nachfragen, diese Seite ist wirklich ganz frisch und wir freuen uns immer über Rückmeldung.
BlackJack

@kaytec: Wenn das Skript ausführbar ist, also mit `chmod` das "executable bit" gesetzt wurde, und die erste Zeile den Interpreter als Kommentar enthält, dann wird es auch durch anklicken ausgeführt. Wenn es keine GUI "enthält" siehst Du allerdings nichts davon, weil nur das Skript ausgeführt wird und keine Konsole in der das Skript dann läuft.

Wenn das Skript wie oben beschrieben auch ausführbar ist, kann man es auch auf der Kommandozeile ausführen. Wenn es nicht in einem Pfad aus `$PATH` liegt, muss man allerdings den Pfad zum Skript mit angeben. Wenn man im gleichen Verzeichnis ist, wie das Skript, dann `./skriptname` (ohne die `). Das ist unter Unix grundsätzlich bei Programmen so.

Browser "verstehen" solche Python-Programme nicht. Was Du da geschrieben hast, ist ein CGI-Skript, das wird vom Webserver geladen und ausgeführt, wenn man es mit einem Browser anfordert. Dazu muss der Webserver entsprechend konfiguriert.
Benutzeravatar
kaytec
User
Beiträge: 608
Registriert: Dienstag 13. Februar 2007, 21:57

Danke BlackJack !

Deine Antworten sind immer verständlich. Befinde ich mich im Verzeichnis /usr/bin, dann geht es ohne Angabe von python - nur test.py! Befinde ich mich da nicht, dann python test.py! Ich habe eine httpserver eingerichtet mit dem script:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from BaseHTTPServer import HTTPServer
from CGIHTTPServer import CGIHTTPRequestHandler
serveradresse =('', 8080)
server = HTTPServer(serveradresse, CGIHTTPRequestHandler)
server.serve_forever()
Ich haben nach Anleitung einen Ordner httpserver erstellt. In diesem Ordner ist das Verzeichnis cgi-bin und dort befindet sich der ganz o.b. code. In meinem Buch steht: Starten sie ihren Browser (IExplorer o. Netscape) und geben sie den Url ein. Danach sollte dieser code browserfähig dargestellt werden.

gruss und dank frank
Antworten