Você pode usar as bibliotecas de terceiros que são código Python exclusivo sem extensões C. Para isso, copie a biblioteca no diretório do aplicativo. Se a biblioteca de terceiros já estiver integrada e embalada com o ambiente de execução, poderá usá-lo sem copiá-lo em seu aplicativo.
Bibliotecas de terceiros devem ser implementados como código Python exclusivo sem extensões C. Se copiado no diretório de sua inscrição, eles são considerados para compartilhamentos de arquivos, uma vez que a biblioteca é carregada para o aplicativo App junto com o código do aplicativo.
copie uma biblioteca de terceiros
para Use uma biblioteca de terceiros que não esteja na lista de bibliotecas integradas e embalada com o ambiente de execução, faça o seguinte:
-
Criar um diretório para armazenar as bibliotecas de terceiros, como
lib/
.mkdir lib
-
USA PIP (versão 6 ou posterior) com A marca
-t <directory>
para copiar as bibliotecas na pasta criada na etapa anterior. Por exemplo:pip install -t lib/ <library_name>
você usa homebrew para python em macos?
homebrew problemas
Se você usar o Homebrew para Python em MacOS, uma exceção pode surgir quando você executar
pip install -t
. Esse problema está relacionado a um problema de instalação homebrew conhecido (consulta ) das configurações do Python que tem homebrew. Para resolver esse problema, crie um arquivo~/.pydistutils.cfg
No seu diretório principal temporariamente com o seguinte conteúdo:prefix=
Certifique-se de remover este arquivo após a instalação de pacotes para o seu aplicativo App Engine, conforme Impedir que você instale pacotes fora deste contexto.
Accept -
Crie um arquivo chamado
appengine_config.py
Na mesma pasta que seu arquivo -
Edite o arquivo
appengine_config.py
e fornece diretório da sua biblioteca para o método .# appengine_config.pyfrom google.appengine.ext import vendor# Add any libraries install in the "lib" folder.vendor.add('lib')
no arquivo
appengine_config.py
Anterior, presume-se que a pastalib
está localizada no diretório TRA Agora Em alguns casos, como testes de unidades, o diretório de trabalho atual pode ser diferente. Para evitar erros, você pode ir explicitamente ir ao caminho completo para a pastalib
com o seguinte:
use arquivos de requisitos pip
com bibliotecas copiadas
pip
pode ler uma lista de Bibliotecas que devem ser instaladas a partir de um arquivo, conhecidas como o arquivo de requisitos. Os arquivos de requisitos facilitam a configuração de um novo ambiente de desenvolvimento para o seu aplicativo e são atualizados para as novas versões da biblioteca.
Um arquivo de arquivo é um arquivo de texto com uma linha de biblioteca da biblioteca O nome do pacote e, opcionalmente , a versão para o pacote (o valor padrão é a última versão):
Flask==0.10Markdown==2.5.2google-api-python-client
Para instalar as bibliotecas de um arquivo de requisitos, use a marca -r
Além da marca -t lib
pip install -t lib -r requirements.txt
Use um construído -in biblioteca de terceiros e embalado com o ambiente de execução
Se a biblioteca de terceiros estiver na lista de bibliotecas integradas e embaladas com o ambiente de execução do Python no aplicativo App, você só terá que especificá-lo em A diretiva de bibliotecas no . Por exemplo:
libraries:- name: PIL version: "1.1.7"- name: webob version: "1.1.1"
APP Engine fornece as bibliotecas solicitadas durante a implementação.
Use bibliotecas integradas e embaladas com o desenvolvimento local do servidor
Muitas das bibliotecas integradas que fornecem o ambiente de execução estão disponíveis automaticamente para o servidor de desenvolvimento local. Para instalar algumas bibliotecas localmente, você deve executar gcloud components install app-engine-python-extras
Se o servidor de desenvolvimento local detectar que este componente é necessário, solicitará que você a instale. As seguintes bibliotecas integradas devem ser instaladas localmente para que você possa usá-las com o servidor de desenvolvimento local:
- lxml
- matlotlib
- mysqldb
- numpy
- pil
- cRCMOD
- pycrypto
- grpcio
- protobuf
Você pode usar o comando PIP para instalar todos esses pacotes do índice Python Packet (PYPI).
sudo pip install lxml==2.3.5
De acordo com a sua plataforma, talvez seja necessário instalar ferramentas de assistência de compilação e fontes de Python para instalar essas bibliotecas.
- No Linux, o Gerenciador de Pacotes pode fornecer a esses requisitos e, muitas vezes, você pode fornecer uma versão já compilada na biblioteca.
- no Windows, os instaladores das versões já compilados são geralmente disponíveis.
- em macos, as ferramentas de linha de comando do Xcode são necessárias para compilar alguns pacotes.
O servidor de desenvolvimento usa a versão do pacote que você instalou localmente, independentemente da versão especificada em . Se desejar, configure um virtualenv para que seu projeto forneça a versão exata do pacote. Observe que o VirtualenV é usado apenas para esses pacotes binários localmente e não estará disponível para sua inscrição, uma vez que seja implementado. Para adicionar bibliotecas adicionais de terceiros, use o método descrito em Instalar uma biblioteca.
USA Django no servidor de desenvolvimento local
django é uma estrutura de aplicativos da Web com todas as funções para Python. Ele fornece uma bateria completa de componentes intercambiáveis, como escritório, visualizações, middleware, componentes de modelos e muitos outros.
A interface de modelagem de dados Django não é compatível com o App Engine Data Warehouse. Você pode usar as bibliotecas de modelagem de dados do App Engine (DB ou NDB) em seus aplicativos Django.SIn, aplicativos Django de terceiros que usam a interface de modelagem de dados do Django, particularmente o aplicativo Django Administrador, pode não funcionar diretamente com o App Engine.
A biblioteca de modelagem de dados (DB) é a opção padrão. Para usar o Django com a API de armazenamento NDB, adicione 'google.appengine.ext.ndb.django_middleware.NdbDjangoMiddleware',
para a entrada MIDDLEWARE_CLASSES
no seu arquivo settings.py
de Django. Recomenda-se inseri-lo na frente de qualquer outro tipo de middleware, uma vez que alguns outros middleware podem chamar o armazenamento de dados, e as chamadas não serão tratadas corretamente se esse middleware for chamado antes de obter. Mais informações Sobre o middleware django na documentação do projeto.
Para ativar o Django no seu aplicativo, especifique o aplicativo WSGI e a biblioteca Django em :
...handlers:- url: /.* script: main.app # a WSGI application in the main module's global scopelibraries:- name: django version: "1.4"
A variável de ambiente DJANGO_SETTINGS_MODULE
deve ser configurado com o nome do seu módulo de configuração do Django, que geralmente é para ser 'settings'
, antes que os pacotes forem importados.
Se o módulo de configuração Django não for settings.py
, configure a variável de ambiente Conforme apropriado no arquivo :
env_variables: DJANGO_SETTINGS_MODULE: 'myapp.settings'
Você também pode fazer isso em Seu código de python:
import os# specify the name of your settings moduleos.environ = 'myapp.settings'import django.core.handlers.wsgiapp = django.core.handlers.wsgi.WSGIHandler()
USA matplotlib
No servidor de desenvolvimento local
matplotlib é uma biblioteca de layout que produz gráficos e números em uma variedade de formatos de imagem. No App Engine, os modos MatPlotlib interativos não são compatíveis e existem outras funções que não estão disponíveis. Isso significa que você não pode usar pyplot.show()
, conforme sugerido em várias instruções MatPlotlib. Em vez disso, você deve usar pyplot.savefig()
para gravar os dados da imagem na transmissão de saída, uma instância cStringIO.StringIO
ou o Google Cloud Storage usando o armazenamento em nuvem da biblioteca Cliente.
MatPlotlib permite uma extensa personalização usando o arquivo de configuração matplotlibrc
, que deve ser colocado no diretório de nível superior do aplicativo. Como alternativa, você pode definir a variável de ambiente em um caminho relativo ao diretório do seu aplicativo.
O backend padrão é AGG, que permite gravar arquivos De todos os formatos compatíveis: PNG (o formato padrão), RAW, PS, PDF, SVG e SVGZ. Se você permitir que a biblioteca PIL esteja disponível adicionando PIL
para a seção de app.yaml
, o backend da AGG também suportará automaticamente a escrita de formatos de imagem JPEG e TIFF.
MatPlotlib possui várias fontes que estão automaticamente disponíveis. Você pode usar fontes personalizadas se você fizer o upload deles no formato TTF junto com o aplicativo e configurar a variável de ambiente TTFPATH
como a rota em que eles estão localizados, em relação ao diretório do aplicativo. Para mais informações, consulte a referência de .
Várias funções MatPlotlib não são compatíveis com o App Engine.Em particular, considere o seguinte:
- nenhum diretório
~/.matplotlib
. No entanto, existem locais alternativos para colocar o arquivo de configuraçãomatplotlibrc
, conforme descrito acima. - backends interativos e elementos da GUI não são compatíveis.
- Backends de EMF, Cairo e GDK não são permitidos.
- Não há armazenamento em cache e, portanto, vários mecanismos recalcam ou baixarão os dados que normalmente são cache. Digite os mecanismos de armazenamento específicos de cache que foram desativados, os dados de fontes que calcularam
matplotlib.font_manager.FontManager.findfont
, os dados de amostra que downloadmatplotlib.cbook.get_sample_data
e os dados financeiros que você faz o downloadmatplotlib.finance.fetch_historical_yahoo
- porque não há armazenamento em cache, não é possível ligar com
asfileobj=False
, a menos queexamples.download
seja definido paraFalse
- porque não há armazenamento em cache, não é possível ligar com
- Todas as funções que invocam comandos externos foram desativados.
- O uso de
fontconfig
foi desativado. As fontes são encontradas no mecanismo descrito acima. - O uso de látex não é permitido para renderização de texto. Definir
text.usetex
emTrue
não funcionará. - O uso de um programa externo de sintetização PostScript não é suportado. Definir
ps.usedistiller
emghostscript
ouxpdf
não funcionará. - O uso de um programa de codificação de vídeo externo é admitido. O método
matplotlib.animation.Animation.save
não funcionará e, portanto, o pacotematplotlib.animation
não é útil. - não é permitido nem a função
matplotlib.cbook.report_memory
nem a classe .
- O uso de
- a função
foi desativado.