Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Date7-mvc 测试出现:NameError: name '__pool' is not defined 求帮忙指点一下 #32

Open
Mr1yan opened this issue Jul 10, 2017 · 6 comments

Comments

@Mr1yan
Copy link

Mr1yan commented Jul 10, 2017

找了好久,还是没发现原因,求指点一下
详细代码项目:https://github.com/Mr1yan/awesome-python3-webapp
详细信息:
INFO:root:create database connection pool...
INFO:root:init jinja2...
INFO:root:set jinja2 template path: E:\Python\awesome-python3-webapp\www\templates
INFO:root:found model: User (table: users)
INFO:root: found mapping: id ==> <StringField, varchar(50):None>
INFO:root: found mapping: email ==> <StringField, varchar(50):None>
INFO:root: found mapping: passwd ==> <StringField, varchar(50):None>
INFO:root: found mapping: admin ==> <BooleanField, boolean:None>
INFO:root: found mapping: name ==> <StringField, varchar(50):None>
INFO:root: found mapping: image ==> <StringField, varchar(500):None>
INFO:root: found mapping: created_at ==> <FloatField, real:None>
INFO:root:found model: Blog (table: blogs)
INFO:root: found mapping: id ==> <StringField, varchar(50):None>
INFO:root: found mapping: user_id ==> <StringField, varchar(50):None>
INFO:root: found mapping: user_name ==> <StringField, varchar(50):None>
INFO:root: found mapping: user_image ==> <StringField, varchar(500):None>
INFO:root: found mapping: name ==> <StringField, varchar(50):None>
INFO:root: found mapping: summary ==> <StringField, varchar(200):None>
INFO:root: found mapping: content ==> <TextField, text:None>
INFO:root: found mapping: created_at ==> <FloatField, real:None>
INFO:root:found model: Comment (table: comments)
INFO:root: found mapping: id ==> <StringField, varchar(50):None>
INFO:root: found mapping: blog_id ==> <StringField, varchar(50):None>
INFO:root: found mapping: user_id ==> <StringField, varchar(50):None>
INFO:root: found mapping: user_name ==> <StringField, varchar(50):None>
INFO:root: found mapping: user_image ==> <StringField, varchar(500):None>
INFO:root: found mapping: content ==> <TextField, text:None>
INFO:root: found mapping: created_at ==> <FloatField, real:None>
INFO:root:add route GET / => index(request)
INFO:root:add static /static/ => E:\Python\awesome-python3-webapp\www\static
INFO:root:server started at http://127.0.01:9000...
INFO:root:Request:GET /
INFO:root:Response handler...
INFO:root:call with args:{'request': <Request GET / >}
INFO:root:SQL: select id, email, passwd, admin, name, image, created_at from users
ERROR:aiohttp.server:Error handling request
Traceback (most recent call last):
File "E:\Python\Python36-32\lib\site-packages\aiohttp\web_protocol.py", line 421, in start
resp = yield from self._request_handler(request)
File "E:\Python\Python36-32\lib\site-packages\aiohttp\web.py", line 303, in _handle
resp = yield from handler(request)
File "E:/Python/awesome-python3-webapp/www/app.py", line 46, in logger
return (await handler(request))
File "E:/Python/awesome-python3-webapp/www/app.py", line 64, in response
r=await handler(request)
File "E:\Python\Python36-32\lib\site-packages\aiohttp\web_urldispatcher.py", line 113, in handler_wrapper
result = yield from result
File "E:\Python\awesome-python3-webapp\www\coreweb.py", line 138, in call
r=await self._func(**kw)
File "E:\Python\Python36-32\lib\asyncio\coroutines.py", line 223, in coro
res = yield from await_meth()
File "E:\Python\awesome-python3-webapp\www\handlers1.py", line 13, in index
users=await User.findAll()
File "E:\Python\awesome-python3-webapp\www\orm.py", line 188, in findAll
rs = await select(' '.join(sql), args)
File "E:\Python\awesome-python3-webapp\www\orm.py", line 32, in select
async with __pool.get() as conn:
NameError: name '__pool' is not defined
INFO:aiohttp.access:127.0.0.1 - - [10/Jul/2017:16:47:31 +0000] "GET / HTTP/1.1" 500 330 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393"

@zaoyilikai
Copy link

The global __pool only needs to be declared in create_pool.

@Mr1yan
Copy link
Author

Mr1yan commented Jul 12, 2017

I had made The global __pool only declared in create_pool. you can see my commition。
but still got same error。
please help me !

@Mr1yan
Copy link
Author

Mr1yan commented Jul 12, 2017

sorry ! I think i have figure out what‘s wrong
in app.py 9 line : from www import orm
this way is wrong,cause orm didn't import,I change to:import orm

@nothingeasy
Copy link

@Mr1yan @michaelliao
what's the difference between from www import orm and import orm ?
can anyone explain it for me ? appreciation!

@az7852
Copy link

az7852 commented Mar 20, 2018

@nothingeasy
from www import orm This orm is the type of:
<module 'www.orm' from '/Users/zph/PycharmProjects/test/www/orm.py'>
import orm This orm is the type of:
<module 'orm' from '/Users/zph/PycharmProjects/test/www/orm.py'>

When you compiled these code in Pycharm, caused by some path problems, it shows error of 'No module named orm'. However it still works. You can right click with this priject and Mark directory as ->Sources Root. With these done, you shall not see these import problems again.

@ShawSpring
Copy link

#maybe you just forget to call create_pool in a async way.
The global __pool declared in create_pool with "sync def", so you should
"await create_pool( pool, ...)" to make sure all other codes running after __pool creation.eg:

async def init(loop):
    await create_pool(loop,user='root',password='xxx',db='xxx')
    u = User(id=66,name='zhaomian' ...)
    await u.save()
    users = await User.findAll()
 
loop = asyncio.get_event_loop()
loop.run_until_complete(init(loop))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants