V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
barnetime
V2EX  ›  Python

初学 Python ,请教各位前辈,以下这段代码为什么会出错呢?

  •  
  •   barnetime · 2017-03-25 20:32:08 +08:00 · 3583 次点击
    这是一个创建于 2582 天前的主题,其中的信息可能已经有所发展或是发生改变。
    ‘’
    import logging;logging.basicConfig(level=logging.INFO)

    import async, os, json, time
    from datetime import datetime

    from aiohttp import web

    def index(request):
    return web.Response(body=b'<h1>Awesome</h1>')

    @async.coroutine
    def init(loop):
    app = web.Application(loop=loop)
    app.router.add_route('GET', '/', index)
    srv = yield from loop.create_server(app.make_handler(),'127.0.0.1',9000)
    logging.info('server started at http://127.0.0.1:9000...')
    return srv

    loop = async.get_event_loop()
    loop.run_until_complete(init(loop))
    loop.run_forever()
    "
    运行上面的代码为什么会出现下面的错误?
    srv=yield from loop.create_server(app.make_handler(),'127.0.0.1',9000)
    ^
    SyntaxError: invalid syntax
    14 条回复    2017-03-26 14:43:50 +08:00
    zhihaofans
        1
    zhihaofans  
       2017-03-25 20:50:49 +08:00 via iPhone   ❤️ 1
    缩进
    SuT2i
        2
    SuT2i  
       2017-03-25 20:51:27 +08:00
    空格还是缩进?
    tblxdezhu
        3
    tblxdezhu  
       2017-03-25 20:52:51 +08:00 via Android
    invalid syntax
    barnetime
        4
    barnetime  
    OP
       2017-03-25 20:53:13 +08:00
    @zhihaofans 我没找到哪里缩进有问题……感觉自己好傻逼~
    tumbzzc
        5
    tumbzzc  
       2017-03-25 21:02:33 +08:00
    语法错误。我猜是 yield from 这里错了,但是我没有用过 Python3.5 的 async 和 aiohttp ,所以不清楚具体哪里错了
    junnplus
        6
    junnplus  
       2017-03-25 21:02:52 +08:00 via iPhone
    用的 python3 的接收器?
    junnplus
        7
    junnplus  
       2017-03-25 21:02:59 +08:00 via iPhone
    @junnplus 解释器
    keekychen
        8
    keekychen  
       2017-03-25 21:07:44 +08:00 via Android
    async def 后用 await
    zsj950618
        9
    zsj950618  
       2017-03-25 23:25:42 +08:00
    首先,你用的得是 python3
    第二,你这代码哪里抄的,确定有 module 名字叫 async 吗。。。不应该是 asyncio 吗。。。
    weaming
        10
    weaming  
       2017-03-26 13:35:58 +08:00
    yield from?
    多了 from 吧
    SuT2i
        11
    SuT2i  
       2017-03-26 14:08:21 +08:00
    @zsj950618 廖雪峰 python 教程。。
    zsj950618
        13
    zsj950618  
       2017-03-26 14:35:49 +08:00 via Android
    另外,别听楼上那些说 yield from 的。。。这是合法关键字
    https://www.python.org/dev/peps/pep-0380/
    python 3.3 加入的
    另外楼主要用 asyncio ,建议 python 3.5 以上
    zsz
        14
    zsz  
       2017-03-26 14:43:50 +08:00
    python3 环境下 使用 asyncio 就好了

    有问题可以加我们的群问,这样效率更高,这个群是一群工程师组建的面向初学者的
    Python Linux 学习群, qq 群号: 278529278 ,
    Php Linux 学习群, qq 群号: 476648701 ,
    非商业性质,拒绝广告,只接收真正想学这方面技术的朋友,交流学习,申请请说明来自 v2ex
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2740 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 12:56 · PVG 20:56 · LAX 05:56 · JFK 08:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.