Quais problemas de compatibilidade existem durante a migração?
- Diferença de args
V1:
args = parser.parse_args()
Após a migração para V2, será:
args = parser.parse_args(args=[])
O sys.argv do tempo de execução do Python varia entre as duas versões.
Para V2, é ['/home/snuser/runtime/python3.6/server.py', '127.0.0.1:31536', '/opt/function/code'], cujos dois últimos parâmetros não estão disponíveis para V1.
- Diferença de asyncio
V1:
loop = asyncio.get_event_loop() loop.run_until_complete(func(arg1, arg2)) loop.close()
Após a migração para V2, será:
loop_tmp = asyncio.new_event_loop() asyncio.set_event_loop(loop_tmp) loop = asyncio.get_event_loop() loop.run_until_complete(func(arg1, arg2)) loop.close()
Na V1, asyncio.get_event_loop() obtém o loop de eventos atual de thread do SO (thread principal). Ele lançará RuntimeError na V2, porque o tempo de execução do Python da V2 não executa funções em thread principal.
Para usar asyncio na V2, crie um loop de eventos.
Migração do FunctionGraph V1 para V2 Perguntas frequentes
- Quais problemas de compatibilidade existem durante a migração?
- Por que não posso imprimir logs de uma função do Python 2.7 após a execução de reload(sys)?
Feedback
Esta página foi útil?
Deixar um comentáriomore