Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python 3.5: "async with" results in SyntaxError. Why? [duplicate]

Tags:

I am using Python 3.5, which, according to PEP 492 should have access to the async with syntax, yet I get a SyntaxError when I try to use it. What am I doing wrong?

In [14]: sys.version
Out[14]: '3.5.2 (default, Oct 11 2016, 04:59:56) \n[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.38)]'

In [15]: async with aiohttp.ClientSession() as session:
  File "<ipython-input-15-9799c5ce74cf>", line 1
    async with aiohttp.ClientSession() as session:
             ^
SyntaxError: invalid syntax
like image 801
vaer-k Avatar asked Feb 16 '17 22:02

vaer-k


1 Answers

You can not use async with without async function. As the docs say:

It is a SyntaxError to use async with outside of an async def function.

But this code will work:

async def some_function():
    async with aiohttp.ClientSession() as session:
        pass

Or have a look at the example from the docs.

like image 113
sobolevn Avatar answered Oct 07 '22 13:10

sobolevn