Puteți utiliza bibliotecile terțe care sunt codul exclusiv al Python fără extensii C. Pentru aceasta, copiați biblioteca în directorul de aplicații. Dacă biblioteca terță parte este deja integrată și ambalată cu mediul de execuție, îl puteți utiliza fără ao copia pe aplicația dvs.
Bibliotecile terțe ar trebui să fie implementate ca cod Python exclusiv fără extensii C. Dacă copiat în directorul aplicației dvs., acestea sunt luate în considerare pentru acțiunile de fișiere, deoarece biblioteca este încărcată în motorul APP împreună cu codul de aplicare.
Copiați o bibliotecă terță parte
la Utilizați o bibliotecă terță parte care nu se află în lista de biblioteci integrate și ambalate cu mediul de execuție, procedați în felul următor:
-
Creați un director pentru a stoca bibliotecile terților, cum ar fi iv id = „49a0171136” .
divid id = „434529EC3a”>
-
Statele Unite ale Americii (versiunea 6 sau mai târziu) cu Mark
-t <directory>
Pentru a copia bibliotecile din dosarul pe care l-ați creat în pasul anterior. De exemplu:pip install -t lib/ <library_name>
folosiți homebrew pentru Python în MacOS?
homebrew probleme
Dacă utilizați homebrew pentru Python în MacOS, poate apărea o excepție atunci când rulați
pip install -t
. Această problemă este legată de o problemă cunoscută de instalare homebrew (interogareNote on pip install --user
) a setărilor Python care are homebrew. Pentru a rezolva această problemă, creați un fișier~/.pydistutils.cfg
în directorul principal temporar cu următorul conținut:prefix=
Asigurați-vă că eliminați acest fișier după instalarea pachetelor pentru motorul aplicației aplicației, așa cum va fi Îți împiedicați instalarea pachetelor din acest context.
DIV>
AcceptCreați un fișier numit
appengine_config.py
în același folder pe care fișierul tăuapp.yaml
.editați fișierul
appengine_config.py
și oferă directorul dvs. de bibliotecă la metodavendor.add()
.iv id = „88efad9651”
în fișierul
appengine_config.py
anterioare, se presupune că folderullib
este situat în directorul TRA Sus acum În unele cazuri, cum ar fi testarea unităților, directorul de lucru curent poate fi diferit. Pentru a evita erorile, puteți merge în mod explicit la calea completă la folderullib
cu următoarele:vendor.add(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'lib'))
Utilizare Cerințe Fișiere pip
cu biblioteci copiate
pip
poate citi o listă de la biblioteci care trebuie instalate dintr-un fișier, cunoscute sub numele de fișier de cerințe. Cerințe Fișierele facilitează configurația unui nou mediu de dezvoltare pentru aplicația dvs. și sunt actualizate la noile versiuni de bibliotecă.
Un fișier de fișier este un fișier text cu o linie de bibliotecă de bibliotecă numele pachetului și, opțional , versiunea pachetului (valoarea implicită este cea mai recentă versiune):
Flask==0.10Markdown==2.5.2google-api-python-client
Pentru a instala bibliotecile de la un fișier de cerințe, utilizați marcajul -r
În plus față de marcaj -t lib
Utilizați o construcție – în biblioteca terță parte și ambalate cu mediul de execuție
dacă biblioteca terță parte se află în lista de biblioteci integrate și ambalate cu mediul de funcționare Python pe motorul aplicației, trebuie doar să o specificați Directiva bibliotecilor din app.yaml
. De exemplu:
libraries:- name: PIL version: "1.1.7"- name: webob version: "1.1.1"
App Motor furnizează automat bibliotecile solicitate în timpul implementării.
Utilizați biblioteci integrate și ambalate cu dezvoltarea locală a serverului
Multe dintre bibliotecile integrate care oferă mediul de executare sunt disponibile automat pentru serverul de dezvoltare locală. Pentru a instala unele biblioteci la nivel local, trebuie să rulați gcloud components install app-engine-python-extras
. Dacă serverul de dezvoltare locală detectează că această componentă este necesară, vă va cere să o instalați. Următoarele biblioteci integrate trebuie să fie instalate la nivel local, astfel încât să le puteți utiliza cu serverul de dezvoltare locală:
- lxml
- matpotlib
- mysqldb
- Protocio
- protocio
- protocuf
Puteți utiliza comanda PIP pentru a instala toate aceste pachete din indicele de pachete Python (PYPI).
sudo pip install lxml==2.3.5
Potrivit platformei dvs., este posibil să fie necesar să instalați instrumente de asistență de compilare și surse Python pentru a instala aceste biblioteci.
- În Linux, managerul de pachete poate furniza aceste cerințe și, de multe ori, puteți furniza o versiune deja compilată din bibliotecă.
- În Windows, instalatorii versiunilor deja compilate sunt de obicei disponibile.
- în MacOS, instrumentele de comandă ale XCODE sunt necesare pentru a compila unele pachete.
Serverul de dezvoltare utilizează versiunea pachetului pe care l-ați instalat la nivel local, indiferent de versiunea specificată în app.yaml
. Dacă doriți, configurați un virtualenv astfel încât proiectul dvs. să furnizeze versiunea exactă a pachetului. Rețineți că Virtualenv este utilizat numai pentru aceste pachete binare la nivel local și nu va fi disponibil pentru cererea dvs. odată ce acesta este implementat. Pentru a adăuga biblioteci terțe suplimentare, utilizați metoda descrisă în instalarea unei biblioteci.
USA DJANGO pe serverul de dezvoltare locală
Django este un cadru de aplicații web cu toate funcțiile pentru Python. Acesta oferă o baterie completă de componente interschimbabile, cum ar fi biroul, vizualizările, middleware, componente șabloane și multe altele.
Interfața de modelare a datelor Django nu este compatibilă cu depozitul de date al aplicației. Puteți utiliza bibliotecile de modelare a datelor aplicației (DB sau NDB) în aplicațiile DJANGO.SIN, aplicațiile DJANGO al terților care utilizează interfața de modelare a datelor Django, în special aplicația Administrator Django, pot să nu funcționeze direct cu motorul APP.
Biblioteca de modelare a datelor (DB) este opțiunea implicită. Pentru a utiliza Django cu API de stocare NDB, Adăugați 'google.appengine.ext.ndb.django_middleware.NdbDjangoMiddleware',
la intrarea MIDDLEWARE_CLASSES
în fișierul dvs. settings.py
din Django. Se recomandă introducerea în fața oricărui alt tip de middleware, deoarece unele intermediare ar putea să apeleze la magazinul de date, iar apelurile nu vor fi tratate corect dacă middleware-ul este invocat înainte de a obține. Mai multe informații Despre DJANGO Middleware în documentația de proiect.
Pentru a activa DJANGO pe aplicația dvs., specificați aplicația WSGI și Biblioteca Django din app.yaml
:
...handlers:- url: /.* script: main.app # a WSGI application in the main module's global scopelibraries:- name: django version: "1.4"
Variabila de mediu DJANGO_SETTINGS_MODULE
trebuie să fie configurat cu numele modulului dvs. de configurare Django, care este de obicei 'settings'
, înainte ca pachetele să fie importate.
Dacă modulul de configurare DJANGO nu este settings.py
, configurați variabila de mediu , după caz, în fișierul app.yaml
:
env_variables: DJANGO_SETTINGS_MODULE: 'myapp.settings'
Puteți face, de asemenea Codul dvs. de Python:
import os# specify the name of your settings moduleos.environ = 'myapp.settings'import django.core.handlers.wsgiapp = django.core.handlers.wsgi.WSGIHandler()
US matplotlib
pe serverul de dezvoltare locală
Matlotlib Este o bibliotecă de aspect care produce grafică și cifre într-o varietate de formate de imagine. În motorul APP, modurile interactive Matplotlib nu sunt compatibile și există și alte funcții care nu sunt disponibile. Aceasta înseamnă că nu puteți utiliza pyplot.show()
, așa cum este sugerat în mai multe instrucțiuni de MATPLOTLIB. În schimb, trebuie să utilizați pyplot.savefig()
pentru a scrie datele imaginii în transmisia de ieșire, o instanță cStringIO.StringIO
sau Google Cloud Storage folosind stocarea cloud-ului bibliotecii Client.
Matplotlib permite personalizarea extinsă utilizând fișierul de configurare matplotlibrc
, care ar trebui să fie plasat în directorul superior al aplicației. În mod alternativ, puteți seta variabila de mediu într-o cale relativă la directorul aplicației dvs.
Backendul implicit este AGG, ceea ce vă permite să scrieți fișiere Dintre toate formatele compatibile: PNG (formatul implicit), Raw, PS, PDF, SVG și SVGZ. Dacă permiteți bibliotecii să fie disponibilă prin adăugarea PIL
la secțiunea al app.yaml
Matplotlib are mai multe surse care sunt disponibile automat. Puteți utiliza fonturi personalizate dacă le încărcați în format TTF împreună cu aplicația și configurați variabila de mediu TTFPATH
ca traseu în care acestea sunt situate, în raport cu directorul de aplicații. Pentru mai multe informații, consultați referința app.yaml
.
Mai multe funcții de matlotlib nu sunt compatibile cu motorul aplicației.În special, luați în considerare următoarele:
- nici un director
~/.matplotlib
. Cu toate acestea, există locații alternative pentru a plasa fișierul de configurarematplotlibrc
, așa cum s-a descris mai sus. - Bacends interactive și elementele GUI nu sunt compatibile.
- Backendurile EMF, Cairo și GDK nu sunt permise.
- Nu există stocare cache și, prin urmare, mai multe mecanisme vor recalcula sau descărca datele care în mod normal ar fi cache. Introduceți mecanismele specifice de stocare a cache-ului, care au fost dezactivate, datele din surse care calculează
matplotlib.font_manager.FontManager.findfont
, datele eșantionului care descarcămatplotlib.cbook.get_sample_data
și datele financiare că descărcațimatplotlib.finance.fetch_historical_yahoo
. Pentru că nu există spațiu de stocare în cache, nu este posibil să sunați iv id = „b4333922fb” cuasfileobj=False
, cu excepția cazului în careexamples.download
Fiți setat laFalse
Li> - Toate funcțiile care invocă comenzi externe au fost dezactivate.
- Utilizarea
fontconfig
a fost dezactivată. Sursele se găsesc în mecanismul descris mai sus. - Utilizarea latexului nu este permisă pentru redarea textului. Setați
text.usetex
înTrue
Nu va funcționa. - Utilizarea unui program extern de sinteză PostScript nu este acceptat. Setați
ps.usedistiller
înghostscript
sauxpdf
nu va funcționa. - Utilizarea unui program de codare video externă este admisă. Metoda
matplotlib.animation.Animation.save
nu va funcționa și, prin urmare, pachetulmatplotlib.animation
nu este util. - nu sunt permise, nici nu sunt permise Funcția
matplotlib.cbook.report_memory
și nici clasamatplotlib.cbook.MemoryMonitor
. - Funcția
matplotlib.test
a fost dezactivată.
- Utilizarea