Bitte um Hilfe: Problem mit urllib.urlopen in fcgi script

Django, Flask, Bottle, WSGI, CGI…
Antworten
Zinober
User
Beiträge: 16
Registriert: Freitag 26. Dezember 2014, 15:58

Hallo,

ich bastele nun schon seit Stunden an einem Problem und komme nicht weiter. Das Phänomen sieht so aus:

Ich will von einem Python-Skript, das als FCGI gestartet wird, auf eine Datei auf einem anderen Server zugreifen.

Code: Alles auswählen

#!/usr/bin/env python2.7
# -*- coding: UTF-8 -*-

from cgi import parse_qs, escape
import sys, os, urllib
from flup.server.fcgi import WSGIServer
...
content = urllib.urlopen('http://server/datei.txt').readlines()
...
Das funktioniert auch wunderbar. Jetzt will ich aber dynamischen Inhalt importieren und ändere die Importzeile:

Code: Alles auswählen

content = urllib.urlopen('http://server/datei.php').readlines()
Wenn ich das Skript über den Browser aufrufe, bekomme ich eine Meldung über eine Unhandled Exception.

Das Seltsame ist, daß die selbe Zeile in einem Testskript, das auf dem selben Server läuft, aber nicht als FCGI über den Browser sondern manuell von der Konsole aus gestartet wird, wiederum funktioniert:

Code: Alles auswählen

#!/usr/bin/env python2.7
# -*- coding: UTF-8 -*-

import sys, os, urllib

content = urllib.urlopen('http://server/datei.php').readlines()

for line in content:
    print line
Weiß vielleicht jemand, woran das liegt? Oder hat jemand eine Idee, wie ich mein Ziel anders erreichen kann?

Vielen Dank schon mal!
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Zinober hat geschrieben:Wenn ich das Skript über den Browser aufrufe, bekomme ich eine Meldung über eine Unhandled Exception.
Der Server wird irgendwo (wahrscheinlich unter /var/log) einen Log anlegen in dem die konkrete Exception und der dazugehörige Traceback stehen sollte. Die Information wäre notwendig um mehr über das Problem aussagen zu können.
BlackJack

@Zinober: Was ist denn die konkrete Ausnahme? Die wird doch wohl hoffentlich in irgendeinem Server-Log protokolliert‽
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Tip: Starte das Skript einmal mal in der Konsole. Kann natürlich nichts sinnvolles machen. Aber man sieht ob es ein generelles Problem ist, das fcgiscript auszuführen...

Ansonsten gilt auch vieles, was hier steht: http://wiki.python-forum.de/Web-Skripte ... %20bringen

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Zinober
User
Beiträge: 16
Registriert: Freitag 26. Dezember 2014, 15:58

Hallo und vielen Dank euch allen!

Das Problem ist gelöst und die Ursache war (natürlich) nur meine eigene Dusseligkeit. Das herauszufinden ging aber nur Dank dem Tipp mit dem Ausführen des FCGI-Skripts auf der Konsole. - Da kamen dann die Fehlermeldungen. - Selbst bin ich nicht auf die Idee nicht gekommen.

Die Server-Logs sind standardmäßig bei dem betreffenden Hoster nicht für die Benutzer zugänglich, werden auf Anfrage aber kostenlos aktiviert. Ich werd das dann besser trotzdem mal bestellen...

Der Fehler selbst hatte mit Python, FCGI oder den Servern garnichts zu tun. Die Ausgabe des php-Skripts war einfach nicht identisch mit der txt-Datei, weil ich aus Versehen eine Auskommentierungen gelöscht hatte und dann stimmten die Array-Indizes in der weiteren Verarbeitung nicht mehr überein.

Ich geh mich jetzt ne Runde schämen!
Euch vielen Dank und schönen Abend!

PS: So was wie "Thread auf gelöst setzen" gibt es hier nicht? Oder bin ich da auch nur zu dumm?
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@Zinober: ein Grund, warum man nicht mit magischen Indizes arbeiten sollte ...
Antworten