psyco+webpy

Amaury Forgeot d'Arc afa at neuf.fr
Mon Jun 26 23:11:36 CEST 2006


a a écrit :
> hi i tried psyco+webpy
> 
> here is the error that i got
> please let me know if any of you has success run psyco+webpy
> thanks
> 
> import web, psyco
> urls = (
>   '/', 'view',
>   '/add','add'
> )
> psyco.full()
> psyco.log()
> psyco.profile()
> 
> Launching server: http://0.0.0.0:8080/
> Traceback (most recent call last):
>   File "C:\Python24\lib\site-packages\web.py", line 2054, in
> run_wsgi_app
>     result = self.server.app(env, self.wsgi_start_response)
>   File "C:\Python24\lib\site-packages\web.py", line 1894, in wsgifunc
>     result = func()
>   File "C:\Python24\lib\site-packages\web.py", line 1872, in <lambda>
>     func = lambda: handle(getattr(mod, name), mod)
>   File "C:\Python24\lib\site-packages\web.py", line 1051, in handle
>     return tocall(*([urllib.unquote(x) for x in args] + fna))
>   File "C:\mark\web1\codepsyco.py", line 27, in GET
>     web.render('view.html')
>   File "C:\Python24\lib\site-packages\web.py", line 1707, in render
>     terms.update(sys._getframe(1).f_locals)
>   File "C:\Python24\Lib\site-packages\psyco\support.py", line 129, in
> __getattr__

Functions optimized by Psyco have limitations concerning access of their 
local variables, as stated there: 
http://psyco.sourceforge.net/psycoguide/bugs.html
As a workaround, you should prevent psyco from optimizing the functions 
calling render().

psyco.cannotcompile(web.djangoerror)
psyco.cannotcompile(??.GET)

P.S. I just had a look at the web.py code and it seems that there are 
several uses of _getframe(x).f_locals. I find this trick not very 
pythonic (a function's docstring even says:"""Guido van Rossum doesn't 
want you to use this function.""") and anyway psyco will not appreciate it.

-- 
Amaury



More information about the Python-list mailing list