O Python 2 não é mais compatível com a comunidade. Recomendamos que você migre aplicativos do Python 2 para o Python 3.

Como migrar para o ambiente de execução padrão do Python 3

A partir de 1º de janeiro de 2020, a comunidade do Python não atualizará mais o Python 2.7, nem corrigirá bugs ou problemas de segurança dele. Recomendamos que você migre os aplicativos que ainda estão em execução no ambiente de execução do Python 2 do ambiente padrão do App Engine para o ambiente de execução do Python 3 assim que possível. Para mais informações, consulte Suporte para Python 2 no Google Cloud.

Principais diferenças entre os ambientes de execução do Python 2 e do Python 3

A maioria das alterações que você precisa fazer durante a migração vem das seguintes diferenças entre os ambientes de execução do Python 2 e do Python 3:

Problemas de compatibilidade entre o Python 2 e o Python 3

Quando o Python 3 foi lançado pela primeira vez em 2008, várias alterações incompatíveis com versões anteriores foram introduzidas na linguagem (links em inglês). Algumas dessas alterações exigem apenas pequenas atualizações no seu código, como a alteração da declaração print para uma função print(). Outras alterações podem exigir atualizações significativas no código, como atualizar a maneira como você lida com dados binários, texto e strings.

Muitas bibliotecas de código aberto conhecidas, incluindo as bibliotecas padrão do Python, também foram alteradas quando foram movidas do Python 2 para o Python 3.

Não há serviços do App Engine incluídos no ambiente de execução do Python 3

A partir do ambiente de execução do Python 3, o ambiente padrão do App Engine não inclui mais serviços incluídos do App Engine, como Memcache e Filas de tarefas. Em vez disso, o Google Cloud fornece produtos independentes que são equivalentes à maioria dos serviços incluídos no ambiente de execução do Python 2. Para os serviços incluídos que não estão disponíveis como produtos separados no Google Cloud, como processamento de imagens, pesquisa e mensagens, você pode usar provedores de terceiros ou outras soluções alternativas, conforme sugerido neste guia de migração.

A remoção dos serviços incluídos do App Engine permite que o ambiente de execução do Python 3 seja compatível com uma experiência de desenvolvimento Python totalmente idiomática. No ambiente de execução do Python 3, você cria um aplicativo Python padrão que é totalmente portátil e pode ser executado em qualquer ambiente padrão do Python, incluindo o App Engine.

Estrutura da Web necessária para encaminhar solicitações de conteúdo dinâmico

No ambiente de execução do Python 2, você pode criar gerenciadores de URL no arquivo app.yaml para especificar qual aplicativo será executado quando um URL específico ou um padrão de URL for solicitado.

No ambiente de execução do Python 3, seu aplicativo precisa usar um framework da Web, como Flask ou Django, para encaminhar solicitações de conteúdo dinâmico em vez de usar gerenciadores de URL em app.yaml. Para conteúdo estático, você pode continuar a criar gerenciadores de URL no arquivo app.yaml do aplicativo.

Visão geral do processo de migração

Recomendamos a seguinte abordagem incremental para a migração, na qual você mantém um aplicativo funcional e testável durante todo o processo:

  1. Migre os serviços incluídos do App Engine no aplicativo Python 2 para serviços do Google Cloud, serviços de terceiros ou outras substituições recomendadas. Teste seu app depois de migrar cada serviço.

    Quando você concluir esta etapa, o aplicativo Python 2 não usará mais APIs google.appengine.

  2. Faça upgrade do seu aplicativo para que ele seja compatível com o Python 2 e o Python 3.

    Várias soluções estão disponíveis para ajudar nesse upgrade. Por exemplo, use Python-Future ou Python-modernize (links em inglês).

    Para mais informações sobre essa etapa do processo de migração, consulte Portabilidade do código do Python 2 para o Python 3 (em inglês) no site da documentação do Python Software Foundation.

  3. Prepare os arquivos de configuração do App Engine para o ambiente de execução do Python 3.

  4. Teste e implante seu aplicativo atualizado em um ambiente do Python 3.

    Talvez seja necessário gastar um tempo significativo corrigindo problemas de compatibilidade que não são visíveis até que você execute o aplicativo de categoria mais alta em um ambiente Python 3.

    Depois que todos os testes forem aprovados, use a divisão de tráfego para migrar lentamente o tráfego do aplicativo no ambiente de execução do Python 2 para o aplicativo no ambiente de execução do Python 3.