ImportError: cannot import name 'errors'

1.1k views Asked by At

Using sockjs with Tornado. On server run, this is the trace returned :

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'
1

There are 1 answers

0
nivhanin On

I would recommend you to upgrade python version to Python 3.5+ and utilize PEP-492 aka async/await. If you are using Python 3.4 please replace await with yield from and async def with @coroutine e.g.:

async def coro(...): ret = await f()

should be replaced by:

@asyncio.coroutine def coro(...): ret = yield from f()

from aiohttp documentaion:

Dependencies Python 3.4.2+

chardet, multidict, async_timeout, yarl

Optionally you may install the cChardet and aiodns libraries (highly recommended for sake of speed).

$ pip install cchardet

$ pip install aiodns