Python Script unter CGI läuft nicht .

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo Ihr lieben,

    Ich habe ein kleines / großes Problem , und zwar habe ich an meinem Raspi 5 Dallas DS18B20 Sensoren hängen die die Temperaturen von meiner Heizung sprich Warmwasser, Kaltwasser, Heizung Vorlauf, Heizung Rücklauf und Aussentemperatur auslesen sollen .
    Dazu habe ich mit Hilfe ein Python Scrpt bekommen das die Temperaturen denn auch auslesen tut .
    In der Konsole funktioniert das Script wunderbar, nur sowie ich die Seite über einen Windowsrechner aufrufe bekomme ich den 500 Internal Server Error .
    Das komische ist aber ich habe ein Testscript zum Testen des Apache 2 Servers, und das funktioniert bei der abfrage von einem Windowsrechner einwandfrei .

    weil ich möchte nur , das die Temperaturdaten von jedem Rechner im Heimnetzwerk ausgelesen werden können .
    Ich habe jetzt schon alles mögliche ausprobiert aber so langsam weiss ich keinen Rat mehr .

    Ich bitte auch zu entschuldigen, falls ich dieses Thema im RaspberryPi Forum übersehen habe .

    Danke schon mal im voaus .

    Raspimännche

  • Hallo,

    CGI ist total altbacken und es gilt ein paar Formalien zu beachten, damit's läuft.

    In jeder Hinsicht besser ist WSGI, der de-facto Standard für Python Webanwendung. Und unter Einsatz eines WSGI-kompatiblen Webframeworks ist das auch ein.

    Für deine Anwendung und Ansprüche sollte Bottle ein guter Kandidat sein. Dann hast du mit ein paar Zeilen Code eine brauchbare Webanwendung (die auch noch einfach zu debuggen wäre, wenn was nicht läuft).

    Gruß, noisefloor


  • Was sagt denn das Apache-Log?

    Hallo Digiart,

    Das muss ich erst mal rausfinden, wo ich das finden kann .
    Bin absoluter Neuling auf dem Gebiet .


    Gruß raspimännche
    Automatisch zusammengefügt:

    Hallo Digiart,

    Das muss ich erst mal rausfinden, wo ich das finden kann .
    Bin absoluter Neuling auf dem Gebiet .


    Gruß raspimännche


     
    Hallo Digiart,
    Ich habe das Script nochmal gestartet

    Die Meldung heisst : , und die letzten Zeilen in der Error.Log notiert .
    Ich hoffe das Du da was mit afangen kannst .


    /usr/bin/env: python^m: No such or file directory
    [Sun Oct 23 21:14:05 2016] [error] [client 192.xxx.xxx.xxx] Premature end of script headers: meinedatei.py
    [Sun Oct 23 21:14:06 2016] [error] [client 192.xxx.xxx.xxx] File does not exist: /var/www/favicon.ico
    [Sun Oct 23 21:14:06 2016] [error] [client 192.xxx.xxx.xxx] File does not exist: /var/www/favicon.ico
    [Sun Oct 23 21:14:06 2016] [error] [client 192.xxx.xxx.xxx] File does not exist: /var/www/favicon.ico


    Gruß
    raspimännche

    Einmal editiert, zuletzt von raspimännche (23. Oktober 2016 um 21:43)

  • Na da haben wir ja schon den Fehler - da arbeitet jemand unter Windows, gell? Und hat das Skript mit einem Windows-Editor geschrieben, und dann einfach rueberkopiert...

    Du hast dadurch ein Problem mit den Zeilenenden. Python selbst ist das egal, aber der Shell zum ausfuehren nicht. Du solltest so etwas wie duconv benutzen, oder besser noch einen Editor benutzen, der auch UNIX-Endungen speichern kann.


  • Na da haben wir ja schon den Fehler - da arbeitet jemand unter Windows, gell? Und hat das Skript mit einem Windows-Editor geschrieben, und dann einfach rueberkopiert...

    Du hast dadurch ein Problem mit den Zeilenenden. Python selbst ist das egal, aber der Shell zum ausfuehren nicht. Du solltest so etwas wie duconv benutzen, oder besser noch einen Editor benutzen, der auch UNIX-Endungen speichern kann.

    Hallo __deets__ ,

    Vielen Dank für deinen Tip, aber ich habe versucht duconv zu installieren aber der hat das Paket nicht gefunden .
    Gibt es vielleicht noch ne lösung oder nen anderen Editor der das macht ?
    Ich verwende immer den Nano Editor .

    Sollte ich vielleicht mal den VIM Installieren ?

    Gruß
    raspimännche
    Automatisch zusammengefügt:

    Hallo Digiart,

    Da hab ich mich total verschrieben . die Letzten 4 Zeilen aus der Error log hab ich oben aufgeschrieben .
    Gruß raspimännche

    Einmal editiert, zuletzt von raspimännche (24. Oktober 2016 um 12:13)

  • > [Sun Oct 23 21:14:05 2016] [error] [client 192.xxx.xxx.xxx] Premature end of script headers: meinedatei.py
    Hat das jemand gemacht der CGI kennt?

    Die Fehlermeldung und auch der Fehlercode deuten darauf hin, dass die Header nicht in Ordnung sind.


    Ein CGI MUSS als erstes Headerzeilen, gefolgt von einer Leerzeile ausgeben.

    Minimal also etwa: "Content-type: text/plain\r\n\r\n"

    (CGI laeuft immer noch, auch wenn es in diesem Forum verpoent ist...)


  • /usr/bin/env: python^m: No such or file directory

    FAQ => Nützliche Links / Linksammlung => Linux kompatible Editoren

    Du verwendest einen Nicht-Linux-Kompatiblen Zeilenumbruch. Eben den von Windows, den Linux aber nicht versteht und daraus dann ^M macht - und dann halt einen Fehler auswirft weil es keine Datei /usr/bin/python^M gibt.
    nano zeigt das ^M gedöns übrigens standardmäßig nicht an, vi aber schon...

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!