Python als Webskriptsprache

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
choallin
User
Beiträge: 6
Registriert: Sonntag 13. November 2011, 12:11

Hallo Leute!

Ich komme von der PHP Ecke, und hab mich jetzt entschlossen mich mit Python als Skriptsprach zu beschäftigen. Leider ist der Einstieg aber nicht ganz so leicht. Im Gegensatz zu PHP gibt es für Python anscheinend keine fertig konfigurierte Entwicklungsumgebung (ich mein jetzt keine IDE, sondern einen Webserver mit dazupassender WSGI Schnittstelle für Python). Ich verwende Ubuntu, und hab schon einiges probiert, aber ich bekomme mod_wsgi nicht zum Laufen.
Da ich PHP bereits aktiviert habe, hab ich mir die phpinfo ausgeben lassen, und es schaut so aus, also ob mod_wsgi vom Indianer geladen wurde. (Beim apache Handler steht unter loaded modules mod_wsgi). Da ich (noch ;-) ) nicht wirklich viel Ahnung von Python, und noch weniger von wsgi habe, verwende ich ein Testskript aus dem Internet um zu sehen ob die Schnittstelle funktioniert.
Hier der Code der test.wsgi Datei:

Code: Alles auswählen

def application(environ, start_response): status = '200 OK' output = 'Hello World!'
response_headers = [('Content-type', 'text/plain'),
                    ('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
Damit der Python Interpreter diese Seite abarbeitet habe ich in der Datei /etc/apache2/sites-available/default für den Rootordner folgende Handler hinzugefügt:
AddHandler cgi-script .cgi
AddHandler wsgi-script .wsgi
Da ich bis jetzt aber noch nirgends angegeben habe wo der Python Interpreter ist, frage ich mich wo ich das noch tun kann. Fehlt sonst auch noch was an Einstellungen? Wäre für jede Hilfe dankbar.

so long
choallin
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Bottle kennt das Prinzip von Server-Adaptern. Ist dies vielleicht schon das, was du suchst?
deets

Vergiss einfach erstmal Apache. Oder NGINX.

Alle namhaften Webframeworks in Python kommen mit standalone servern daher, die fuer die Entwicklung voellig ausreichend sind (ehrlich gesagt sogar wahrscheinlich fuer die meisten Seiten da draussen).

Wenn du irgendwann mal was gebaut hast, dass zu veroeffentlichen sich lohnt, dann kannst du dich mit WSGI auseinandersetzen.
choallin
User
Beiträge: 6
Registriert: Sonntag 13. November 2011, 12:11

Ok, danke für den Tipp. Dann werd ich es fürs erste mal ohne Apache versuchen.

Bezüglich Frameworks hab ich mich auch schon etwas erkundigt. Was mich bis jetzt sehr angesprochen hat, war Pyramid. Hat damit schon jemand Erfahrung?
Bottle schaut auch recht interessant aus, muss ich mir noch etwas genauer ansehen... . Danke für den Tipp.

Da ich auf meinem Rechner 2 verschiedene Versionen von Python installiert habe (Python 2.7 und 3.2) und ich gerne mit der 3er Version starten würde (ist das zu empfehlen?), frag ich mich, wie ich im Terminal dafür sorgen kann, dass der Befehl pip something mir die Packages für Python 3.2 holt. Weiß jemand was ich da einstellen muss? (Ich weiß, ist eigentlich eine Linux Frage, aber falls sich jemand auskennt wäre das toll :-) )

Danke euch auch für die schnelle Antwort. Damit kann ich wieder weitermachen.

so long
choallin
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Gerade wenn du Webentwicklung betreiben willst ist von Python 3 momentan abzuraten.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

choallin hat geschrieben: Da ich auf meinem Rechner 2 verschiedene Versionen von Python installiert habe (Python 2.7 und 3.2) und ich gerne mit der 3er Version starten würde (ist das zu empfehlen?), frag ich mich, wie ich im Terminal dafür sorgen kann, dass der Befehl pip something mir die Packages für Python 3.2 holt.
Unter ArchLinux heißt es bei mir `pip2` für Python2 und `pip` für Python3. Da bei Arch Python3 den Standard bildet, ist das Benennungsschema da ein wenig außer der Reihe. Aber Du könntest ja mal gucken, ob es ein `pip` für Python3 als Paket gibt - der Befehl wäre dann analog ggf. `pip3`?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten