O Python 3.9 já está disponível para todos os usuários.

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

O ambiente de execução do Python 3 é desenvolvido com base em três ideias principais:

  • Seu app usa a versão mais recente do interpretador de código aberto do Python, fornecido pela Python Software Foundation.
  • É possível usar o ecossistema avançado de pacotes e frameworks do Python no seu aplicativo, incluindo aqueles que usam código C, declarando dependências em um arquivo requirements.txt.
  • Você não precisa de conhecimento específico nem especializado em plataforma para desenvolver no App Engine.

O objetivo geral é que o desenvolvimento seja uma experiência totalmente idiomática, e o aplicativo seja totalmente portátil e executado em qualquer ambiente padrão do Python. Você cria um aplicativo Python padrão, não um aplicativo Python do App Engine. Como parte dessa mudança, você não usa mais APIs e serviços incluídos do App Engine para a funcionalidade principal do seu aplicativo. Em vez disso, você usa APIs e serviços do Google Cloud ou de terceiros.

Não há serviços incluídos do App Engine 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 do pacote 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, use provedores de terceiros ou outras soluções alternativas, conforme sugerido no guia de migração.

Outras diferenças entre os dois ambientes de execução

As seções a seguir destacam outras diferenças entre os ambientes de execução do Python 2 e do Python 3.

Arquivos de configuração

Antes de executar o aplicativo no ambiente de execução do Python 3 do ambiente padrão do App Engine, talvez seja necessário alterar alguns dos arquivos de configuração usados pelo App Engine:

  • app.yaml. O comportamento de alguns campos no arquivo de configuração app.yaml foi modificado. Remova todos os campos obsoletos e atualize outros campos conforme descrito no guia de migração.

  • appengine_config.py. O ambiente de execução do Python 2 usa esse arquivo para instalar bibliotecas de cliente e fornecer valores para constantes e "funções hook". Esse arquivo não é usado no ambiente de execução do Python 3.

    Em vez disso, o ambiente de execução do Python 3 usa o arquivo requirements.txt padrão para instalar dependências, incluindo dependências que usam código nativo. Para mais informações, consulte Como especificar dependências no ambiente de execução do Python 3.

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

No ambiente de execução do Python 2, é possível 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, é possível continuar a criar gerenciadores de URL no arquivo app.yaml do aplicativo.

Teste

Recomendamos que você use uma abordagem de teste que seja idiomática para Python em vez de depender de dev_appserver. Por exemplo, você pode usar venv para criar um ambiente Python 3 local isolado. Qualquer biblioteca de testes padrão do Python pode ser usada para escrever sua unidade, integração e testes de sistema. Também é possível configurar versões de desenvolvimento de seus serviços ou usar os emuladores locais disponíveis para muitos produtos do Google Cloud.

Como um recurso opcional para quem optar por usá-lo, estamos oferecendo uma versão Alfa de um dev_appserver atualizado compatível com o Python 3. Para mais informações sobre essa opção, consulte Como usar o servidor de desenvolvimento local.

Implantando

As implantações via appcfg.py não são compatíveis com o Python 3. Use a ferramenta de linha de comando gcloud para implantar seu aplicativo.

Como migrar do Python 2 para o Python 3

Para detalhes completos sobre a migração para o ambiente de execução do Python 3, consulte Como migrar para o ambiente de execução padrão do Python 3.