Seite 1 von 1
bottle: AssertionError
Verfasst: Donnerstag 11. November 2010, 08:29
von Dadapf
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
Re: bottle: AssertionError
Verfasst: Donnerstag 11. November 2010, 08:40
von Dadapf
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.
Re: bottle: AssertionError
Verfasst: Donnerstag 11. November 2010, 09:03
von lunar
@Dadapf: Hast Du 2to3 überhaupt verwendet?
Re: bottle: AssertionError
Verfasst: Donnerstag 11. November 2010, 09:07
von 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.
Re: bottle: AssertionError
Verfasst: Donnerstag 11. November 2010, 09:07
von Dadapf
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.
Re: bottle: AssertionError
Verfasst: Donnerstag 11. November 2010, 09:31
von Leonidas
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?
Re: bottle: AssertionError
Verfasst: Donnerstag 11. November 2010, 09:37
von Dadapf
Wenn der so lange braucht ... Ich werde mal nachfragen.
Aber auch bei der automatischen 2to3-Konvertierung gibt es bei mir im Moment Probleme.
Dadapf
Re: bottle: AssertionError
Verfasst: Donnerstag 11. November 2010, 10:20
von Defnull
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.
Re: bottle: AssertionError
Verfasst: Donnerstag 11. November 2010, 12:19
von DasIch
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?
Re: bottle: AssertionError
Verfasst: Donnerstag 11. November 2010, 12:46
von Defnull
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.
A: bottle: AssertionError
Verfasst: Donnerstag 11. November 2010, 17:51
von Dadapf
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
Re: A: bottle: AssertionError
Verfasst: Donnerstag 11. November 2010, 17:55
von nomnom
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?

Re: bottle: AssertionError
Verfasst: Donnerstag 11. November 2010, 17:59
von Dadapf
Das Zitat war einfach die Auskunft meines Webserver-Dienstleisters - mit allen Fehlern.
Dadapf
Re: bottle: AssertionError
Verfasst: Donnerstag 11. November 2010, 18:14
von 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.