Erro em python comando exec

Estou tentando realizar uma ação através do comando exec():

import asyncio from pyppeteer import launch  async def main(a): #função que executará o comando     exec(a)  c="""browser = await launch() #inicializa navegador     page = await browser.newPage()     await page.goto('https://translate.google.com.br/?hl=pt-BR', timeout= 0) #timeout = 0 serve para impossibilitar erro por timeout     dimensions = await page.evaluate('''() => {         return {             "width": document.documentElement.clientWidth,             "height": document.documentElement.clientHeight         }     }''') #define as dimensões do navegador     await page.setViewport(dimensions)     await page.click('.tlid-open-source-language-list', button='left')     await page.screenshot({'path': r'C:\Users\Windows 7\Desktop\yes.png'})     await browser.close() #fecha navegador """ asyncio.get_event_loop().run_until_complete(main(c)) #executa a função main() input('fim') 

O interpretador indica um erro como invalid syntax na linha browser = await launch(), e esse código funciona perfeitamente quando executado diretamente, então há algo de errado quando ele é inserido em uma string e depois é exec().

Por sinal, o seguinte código funciona muito bem:

def x(y):     exec(y) x('''print("oi") print('tchau')''') 

Portanto o problema não é o fato de uma multi-line string ser exec(). Como tudo que o interpretador indica é Syntax Error: invalid syntax, não sei como fazer o código funcionar.