bottle: AssertionError

Django, Flask, Bottle, WSGI, CGI…
Antworten
Dadapf
User
Beiträge: 28
Registriert: Mittwoch 16. Dezember 2009, 09:16

Guten Morgen,

nachdem mir hier im Forum bottle (beziehungsweise flask) nachgelegt worden ist, anstatt alles selber zu machen, habe ich mir gedacht, ich probiere es aus.

Code: Alles auswählen

#! /usr/bin/python3
# -*- coding: utf-8 -*-
from bottle import route, run
@route('/Ausgaben')
def Ausgaben():
	return 'Dies ist ein Test.' #Variable
run(host='localhost', port=8080)
Doch leider steigt das Programm noch vor der vierten Zeile mit der Fehlermeldung

Code: Alles auswählen

Traceback (most recent call last):
  File "./Test bottle.py", line 6, in <module>
    from bottle import route, run
  File "/home/BAm2/Programme/Arbeiten/bottle.py", line 352
    except (AssertionError, IndexError), e: # AssertionError: Too many groups
                                       ^
SyntaxError: invalid syntax
aus.
Dürfte ja wohl jetzt nicht an meinem Testprogrämmchen liegen. Weiß jemand Rat?

Dadapf
Dadapf
User
Beiträge: 28
Registriert: Mittwoch 16. Dezember 2009, 09:16

Trotz
"Bottle runs with Python 2.5+ and 3.x (using 2to3)"
läuft bottle wohl nicht mit Python3. Wenn ich es nämlich mit 2.6 laufen lasse, kommt die Fehlermeldung nicht. Schade.

Dadapf

p.s.: Ich sehe gerade, dass bottle wirklich nur Python2 ist. Ich muss es selber auf Python3 umschreiben oder "2to3" suchen. Hm.
Zuletzt geändert von Dadapf am Donnerstag 11. November 2010, 09:04, insgesamt 1-mal geändert.
lunar

@Dadapf: Hast Du 2to3 überhaupt verwendet?
BlackJack

@Dadapf: Das ist kein `AssertionError` sondern ein `SyntaxError` an einer Stelle wo versucht wird die Python 2.x ``exception``-Syntax mit Python 3.x auszuführen. Du musst schon einen Bottle-Quelltext in Python 3.x-Syntax laufen lassen. Wenn es dafür kein fertiges Release gibt, müsstest Du das 2to3-Skript selbst verwenden.

Unter'm Strich würde ich persönlich aber einfach von Python 3.x noch abraten. Zumindest für produktive Projekte. Sonst musst Du vorher gut darauf achten, was Du alles brauchen wirst, und ob es das schon für 3.x gibt. Und auch welche Python-Version auf potentiellen Servern überhaupt läuft.
Dadapf
User
Beiträge: 28
Registriert: Mittwoch 16. Dezember 2009, 09:16

Den Zusatz "using 2to3" habe ich beim flüchtigen Lesen falsch interpretiert: Nämlich, dass bottle mit Hilfe von 2to3 bereits umgeschrieben wäre - nicht, das ich es noch tun muss.

Dadapf

p.s.: Ich brauche nur das bereits vorhandene Python3-Paket und halt bottle. Auf meinem Rechner würde es daher - zu Testzwecken - laufen. Was die Server meines Internetdienstleisters betrifft, da warte ich einfach, bis er auf Python3 migriert hat. Solange bleiben meine Seiten dort statisch.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dadapf hat geschrieben:Was die Server meines Internetdienstleisters betrifft, da warte ich einfach, bis er auf Python3 migriert hat. Solange bleiben meine Seiten dort statisch.
Also so die nächsten 5 Jahre etwa?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Dadapf
User
Beiträge: 28
Registriert: Mittwoch 16. Dezember 2009, 09:16

Wenn der so lange braucht ... Ich werde mal nachfragen.
Aber auch bei der automatischen 2to3-Konvertierung gibt es bei mir im Moment Probleme.

Dadapf
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

Dadapf hat geschrieben:Wenn der so lange braucht ... Ich werde mal nachfragen.
Aber auch bei der automatischen 2to3-Konvertierung gibt es bei mir im Moment Probleme.
Und welche?

Ich teste jedes Release mit Python 2.5, 2.6, 2.7, 3.1 und 3.2, bevor es veröffentlicht wird. Wenn man bottle fachgerecht installiert (mit pip oder easy_install) wird 2to3 bei Bedarf automatisch ausgeführt. Wenn man bottle als source package herunter lädt, hilft ein 'python3 setup.py install'. Wenn man bottle.py einzeln herunter lädt, muss man das aber wohl oder übel selbst übernehmen ('2to3 -w bottle.py'). Leider ändert sich der Python Syntax zwischen 2.5 und 3.x so stark, das es unmöglich ist, universellen Code zu schreiben.
Bottle: Micro Web Framework + Development Blog
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Dadapf hat geschrieben:Was die Server meines Internetdienstleisters betrifft, da warte ich einfach, bis er auf Python3 migriert hat. Solange bleiben meine Seiten dort statisch.
Es gibt nicht einen einzige produktiv brauchbare Implementation fuer Python3 auf die migriert werden koennte.

Unterstuetzt Bottle WSGI 3333 ueberhaupt?
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

DasIch hat geschrieben:Unterstuetzt Bottle WSGI 3333 ueberhaupt?
Soweit ich weis, schon. PEP 3333 deckt sich weitgehend mit mod_wsgi unter 3.x. Außerdem wird bottle gegen wsgiref getestet, das PEP 3333 eigentlich implementieren sollte. Ich hatte aber noch nicht die Zeit, es ausgiebig zu testen. Vor allem, da noch kein pep 3333 konformer wsgi server existiert.
Bottle: Micro Web Framework + Development Blog
Dadapf
User
Beiträge: 28
Registriert: Mittwoch 16. Dezember 2009, 09:16

1. Python3 auf dem Webserver: "[...] aktuell ist noch die Version 2.5 Verfügbar. Sobald eine Stable Version der 3.x
Verfügbar ist, wird auch entsprechend ein Update ausgeführt!" Wann auch immer dies sein mag.
2. Mein Problem bei der 2to3-Konvertierung liegt nicht an bottle, sondern an 2to3 selber:

Code: Alles auswählen

Traceback (most recent call last):
  File "/usr/lib/python3.0/lib2to3/refactor.py", line 25, in <module>
      from .pgen2 import driver
ValueError: Attempted relative import in non-package
Ich weiß noch nicht, woran dies liegt. Meine eigenen Programme habe ich halt (vorher schon) manuell konvertiert; dies ist mir sicherer gewesen.

Dadapf
nomnom
User
Beiträge: 487
Registriert: Mittwoch 19. Mai 2010, 16:25

Dadapf hat geschrieben:1. Python3 auf dem Webserver: "[...] aktuell ist noch die Version 2.5 Verfügbar. Sobald eine Stable Version der 3.x
Verfügbar ist, wird auch entsprechend ein Update ausgeführt!" Wann auch immer dies sein mag
Es gibt schon ein stabiles Python 3k, und außerdem kann der Webserver nicht richtige Groß- und Kleinschreibung? :wink:
Dadapf
User
Beiträge: 28
Registriert: Mittwoch 16. Dezember 2009, 09:16

Das Zitat war einfach die Auskunft meines Webserver-Dienstleisters - mit allen Fehlern.

Dadapf
BlackJack

@Dadapf: Die aktuelle 3er ist die 3.1 -- von der 3.0 wird mittlerweile abgeraten. Die ist relativ langsam und Fehler werden da auch nur noch behoben wenn es Sicherheitsprobleme sind.

An der Antwort von Deinem Anbieter siehst Du die Lage aber auch ganz gut: Man kann in dem Bereich tatsächlich vielfach mit 2.5 als kleinstem gemeinsamen Nenner rechnen.
Antworten