Python: Hallo Welt - braucht Hilfe

Probleme bei der Installation?
Peter-
User
Beiträge: 40
Registriert: Dienstag 16. März 2021, 15:01

Hallo Zusammen,

meinen "Hallo Welt" - Code habe ich via FTP auf meinen Ionos Webspace geladen und dann mit dem Browser (Chrome, Firefox und Edge getestet) die Adresse aufgerufen.
Die Seite hat den Namen hallowelt.py
Leider wird .py scheinbar nicht erkannt und es wird auf eine default Seite umgeleitet.
Ich habe mal nachgesehen, in meinem Tarif ist python enthalten.
.php Adressen und auch .html Adressen öffnen sich.

Woran kann das liegen?
Ach ja: habe irgendwo die Info gelesen, man soll die Zugriffsberechtigung im FTP für die Datei auf 755 oder 777 ändern, was aber auch nichts verändert hat.

Schöne Grüße,
Peter
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Meist wird bei solchen Billig-Webspaces noch das seit zwanzig Jahren völlig veraltete CGI benutzt, und dazu muß man Konfigurieren, in welchen Verzeichnissen welche Dateien als CGI-Skripte ausgeführt werden dürfen. Meist ist ein /cgi-bin-Verzeichnis voreingestellt.
Peter-
User
Beiträge: 40
Registriert: Dienstag 16. März 2021, 15:01

Danke für den Tipp.
Hab den Ordner im Root Verzeichnis meines FTP-Zuganges angelegt. Hat nicht zur Lösung geführt.
nezzcarth
User
Beiträge: 1632
Registriert: Samstag 16. April 2011, 12:47

Wie genau sieht denn deine Datei aus? Einfach nur 'print('Hallo Welt!')' reicht nicht aus. Du musst entweder ein Webframework verwenden oder dich, wenn es denn unbedingt CGI sein soll, in die Verwendung des CGI Moduls aus der Standardbibliothek einlesen (https://docs.python.org/3/library/cgi.html). Beides ist allerdings kein absolutes Einsteigsthema; dafür sollte man die Grundlagen von Python schon halbwegs beherrschen.
Peter-
User
Beiträge: 40
Registriert: Dienstag 16. März 2021, 15:01

Das Programm sieht so aus:

----------------------------------

#!/usr/bin/python2.7

print "Content-Type: text/html"
print "\n\n"
print "<p>Hello World</p>"

----------------------------------

den Pfad hab ich aus der Ionos Doku. Da waren aber mehrere angegeben.

Um von Java Applets (bzw. PHP/mySQL) auf Python Webanwendungen umzusteigen brauche ich halt ne Umgebung.
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Peter-: Python 2 sollte man nicht mehr für neue Projekte verwenden, das ist sein über einem Jahr EOL.

CGI möchte man eigentlich nicht mehr machen. Selbst wenn der Host nur CGI kann, würde ich mindestens ein WSGI-Mikrorahmenwerk (`bottle` oder `flask`) verwenden. WSGI kann man notfalls auch über CGI ausliefern.

Webanwendungen in Python sind aber deutlich anders als PHP und die meisten ”normalen” Webspace-Anbieter kann man da vergessen. Python ist da mehr wie Java oder C#.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Peter-
User
Beiträge: 40
Registriert: Dienstag 16. März 2021, 15:01

>Python 2 sollte man nicht mehr für neue Projekte verwenden, das ist sein über einem Jahr EOL.

ah ok, danke für die info.

>CGI möchte man eigentlich nicht mehr machen. Selbst wenn der Host nur CGI kann, würde ich mindestens ein WSGI-Mikrorahmenwerk (`bottle` oder `flask`) verwenden.

ich hab schon ein paar tutorials, auch auf udemy, gebucht für django.
aber ich würde auch gerne mal verstehen wie das ohne django geht, blicke da auch noch nicht wirklich durch.

Noch ne idee warum mein server die .py datei nicht öffnet?
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Peter-: Weil der Server halt nicht so konfiguriert ist bzw. die Datei nicht dort liegt, oder nicht die Datenamenendung hat, die für CGI konfiguriert ist.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Peter-
User
Beiträge: 40
Registriert: Dienstag 16. März 2021, 15:01

Habe mit der 24-Stunden Hotline von Ionos gesprochen und ein Ticket anlegen lassen.
Mal sehen ob die eine Lösung finden.
Peter-
User
Beiträge: 40
Registriert: Dienstag 16. März 2021, 15:01

Das Problem ist gelöst.
Ein Supporter bei Ionos hat beim Pfad einfach die Versionsnummer rausgenommen, jetzt wird das Skript ausgeführt :-)))


----------------------

#!/usr/bin/python

print "Content-Type: text/html"
print "\n\n"
print "<p>Hello World</p>"

----------------------


Danke für Eure Unterstützung.
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Peter-: Das Problem ist nicht wirklich gelöst, denn wenn das jetzt funktioniert, dann ist das Python 2 und damit ein Problem das gelöst werden sollte. 🙂
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Peter-
User
Beiträge: 40
Registriert: Dienstag 16. März 2021, 15:01

Problem ist doch nicht behoben, die angenommene Lösung dass es am Pfad gelegen hat war eine falsche Annahme.

Der Supporter hat die Datei mit dem anderen Pfad gespeichert.
Aber wenn ich exakt denselben Code in eine neue Datei kopiere (z. B. jetzt mit dem Namen datei.py statt vorher test.py), ist das ursprüngliche Problem wieder da: der .py Code wird nicht ausgeführt sondern auf eine Default Seite umgeleitet.

Daher habe ich den Supporter nochmal angerufen und gefragt, ob er noch etwas geändert hat.
Nein, hat er gesagt, nur den Pfad.
Er hat die Datei nochmal neu gespeichert, diesmal mit einer Zeile weniger, und es ging wieder.
Aber wenn ich eine neue Datei anlege, auch mit dieser Zeile weniger, geht es wieder nicht mehr.

Fazit: beim Speichern der Seite durch den Supporter muss irgendetwas anderes passieren als bei mir.

Habe daher mal meine Datei mit anderer Kodierung "ANSI" und auch "UTF-8" getestet, daran lags nicht.

Ideen?

Nachtrag: Witzig, wenn ich seine Datei unter einem neuen Dateinamen und mit neuem Python-Code hochlade, funktioniert es. Wenn ich seinen Code nehme, seinen File-Namen, aber einfach als neue Datei anlege, geht es nicht. Kodierungseinstellungen wie bei seiner Datei.
Habs jetzt mit Atom, Notepad++ und mit Notepad versucht.
(hm... fürs hochladen verwendet er ja auch ein anderes Programm als ich... ich hab FileZilla. Aber daran kann es ja nicht liegen, weil seine Dateien ja auch mit meinem FileZilla funktionieren, sogar mit ganz anderem und längerem code.)
Peter-
User
Beiträge: 40
Registriert: Dienstag 16. März 2021, 15:01

__blackjack__ hat geschrieben: Mittwoch 17. März 2021, 10:59 @Peter-: Das Problem ist nicht wirklich gelöst, denn wenn das jetzt funktioniert, dann ist das Python 2 und damit ein Problem das gelöst werden sollte. 🙂
kann ich nicht sagen welche python version es ist. Der Pfad auf 2.7 ist ja jetzt weg.
ich kann mir nicht vorstellen, wenn das EOL ist, dass ein Unternehmen das so viele Nutzer hat, nicht auf 3 laufen würde.
nezzcarth
User
Beiträge: 1632
Registriert: Samstag 16. April 2011, 12:47

Man sieht an der Syntax, dass es Python 2 sein muss (in Python 3 muss es zwingend "print("Hallo Welt")" sein, also ein Funktionsaufruf.) Es kann zum Beispiel sein, dass das Unternehmen ein LTS Linux verwendet, das python 2.7 noch unterstützt.
Peter-
User
Beiträge: 40
Registriert: Dienstag 16. März 2021, 15:01

nezzcarth hat geschrieben: Mittwoch 17. März 2021, 12:14 Man sieht an der Syntax, dass es Python 2 sein muss (in Python 3 muss es zwingend "print("Hallo Welt")" sein, also ein Funktionsaufruf.)
ah ok.
Naja, ich denke ich werde es jetzt nicht auf die Schnelle schaffen, eine Umstellung auf Python3 bei Ionos zu erreichen.

Aber wenn es mit der Datei des Supporters funktioniert, muss es doch bei mir auch irgendwie gehen...
nezzcarth
User
Beiträge: 1632
Registriert: Samstag 16. April 2011, 12:47

Peter- hat geschrieben: Mittwoch 17. März 2021, 12:20 Aber wenn es mit der Datei des Supporters funktioniert, muss es doch bei mir auch irgendwie gehen...
Hast du darauf geachtet, dass Unix Zeilenenden (LF) und nicht Windows Zeilenenden (CRLF) verwendet werden? Sind die Permissions richtig gesetzt? Zumindest der Besitzer (=User des Webservers im besten Fall) muss die Datei ausführen können (755).
Peter-
User
Beiträge: 40
Registriert: Dienstag 16. März 2021, 15:01

@nezzcarth
das war die Lösung!!!
ich beschreibe sie nochmal:
im Notepad auf bearbeiten->Format Zeilenende->Konvertiere zu UNIX (LF)

Vielen Dank an Alle für die Hilfe, und vielen Dank nezzcarth.

Schöne Grüße,
Peter
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Peter-: Es kann nicht sein das ein Webhoster noch *kein* Python 3 anbietet. Wenn man den jetzt erst dazu überreden müsste Python 3 (≥3.6) anzubieten, dann sollte man sich dringend einen anderen Hoster suchen.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Peter-
User
Beiträge: 40
Registriert: Dienstag 16. März 2021, 15:01

__blackjack__ hat geschrieben: Mittwoch 17. März 2021, 12:53 @Peter-: Es kann nicht sein das ein Webhoster noch *kein* Python 3 anbietet. Wenn man den jetzt erst dazu überreden müsste Python 3 (≥3.6) anzubieten, dann sollte man sich dringend einen anderen Hoster suchen.
@__blackjack__

Da gebe ich Dir völlig recht.
Zwischen dem was sein kann und ist, ist manchmal halt ein Unterschied.
Ich bin jetzt seit den 90ern bei Ionos (bzw. vormals 1und1, bzw. vormals puretec), hab schon 3 Mal gewechselt und kam immer wieder zurück.
Für den Moment kann ich weiterlernen, worum es ja ging.
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Peter-: Was heisst weiterlernen? Mit Python 2 und Webanwendung? Eher nein.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten