Python: Hallo Welt - braucht Hilfe

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

Dienstag 16. März 2021, 15:08

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: 14826
Registriert: Sonntag 21. Oktober 2012, 17:20

Dienstag 16. März 2021, 16:07

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: 33
Registriert: Dienstag 16. März 2021, 15:01

Dienstag 16. März 2021, 19:46

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: 1321
Registriert: Samstag 16. April 2011, 12:47

Dienstag 16. März 2021, 20:09

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: 33
Registriert: Dienstag 16. März 2021, 15:01

Dienstag 16. März 2021, 20:20

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: 8881
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Dienstag 16. März 2021, 20:28

@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#.
Q: What is the volume of a pizza of radius z and thickness a?
A: pi·z·z·a
Peter-
User
Beiträge: 33
Registriert: Dienstag 16. März 2021, 15:01

Dienstag 16. März 2021, 21:39

>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: 8881
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Dienstag 16. März 2021, 21:59

@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.
Q: What is the volume of a pizza of radius z and thickness a?
A: pi·z·z·a
Peter-
User
Beiträge: 33
Registriert: Dienstag 16. März 2021, 15:01

Mittwoch 17. März 2021, 00:39

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: 33
Registriert: Dienstag 16. März 2021, 15:01

Mittwoch 17. März 2021, 10:38

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: 8881
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

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. 🙂
Q: What is the volume of a pizza of radius z and thickness a?
A: pi·z·z·a
Peter-
User
Beiträge: 33
Registriert: Dienstag 16. März 2021, 15:01

Mittwoch 17. März 2021, 11:41

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: 33
Registriert: Dienstag 16. März 2021, 15:01

Mittwoch 17. März 2021, 12:11

__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: 1321
Registriert: Samstag 16. April 2011, 12:47

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.) Es kann zum Beispiel sein, dass das Unternehmen ein LTS Linux verwendet, das python 2.7 noch unterstützt.
Peter-
User
Beiträge: 33
Registriert: Dienstag 16. März 2021, 15:01

Mittwoch 17. März 2021, 12:20

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...
Antworten