在Tornado中使用sockjs。在服务器上运行时,这是返回的跟踪:
python server.py
Traceback (most recent call last):
File "server.py", line 10, in <module>
from sockjs.tornado import SockJSRouter
File "/Users/mohit/anaconda/envs/py34/lib/python3.4/site-packages/sockjs/__init__.py", line 20, in <module>
from sockjs.route import get_manager, add_endpoint
File "/Users/mohit/anaconda/envs/py34/lib/python3.4/site-packages/sockjs/route.py", line 11, in <module>
from sockjs.transports import handlers
File "/Users/mohit/anaconda/envs/py34/lib/python3.4/site-packages/sockjs/transports/__init__.py", line 3, in <module>
from .jsonp import JSONPolling
File "/Users/mohit/anaconda/envs/py34/lib/python3.4/site-packages/sockjs/transports/jsonp.py", line 8, in <module>
from .base import StreamingTransport
File "/Users/mohit/anaconda/envs/py34/lib/python3.4/site-packages/sockjs/transports/base.py", line 2, in <module>
from aiohttp import errors
ImportError: cannot import name 'errors'
答案 0 :(得分:0)
我建议你将python版本升级到 Python 3.5+并使用PEP-492 aka async / await。如果您使用的是Python 3.4,请使用@coroutine替换await from和async def,例如:
async def coro(...):
ret = await f()
应替换为:
@asyncio.coroutine
def coro(...):
ret = yield from f()
来自aiohttp documentaion:
依赖关系 Python 3.4.2 +
chardet
,multidict
,async_timeout
,yarl
您可以选择安装cChardet和aiodns库(强烈建议为了速度)。
$ pip install cchardet
$ pip install aiodns