Vous pouvez utiliser les bibliothèques tiers qui sont exclusifs Code Python sans extensions C. Pour cela, copiez la bibliothèque dans le répertoire d’applications. Si la bibliothèque tierce partie est déjà intégrée et emballée avec l’environnement d’exécution, vous pouvez l’utiliser sans la copier sur votre application.
Les bibliothèques tiers doivent être mises en œuvre comme code Python exclusif sans extensions C. Si Copié dans le répertoire de votre application, ils sont pris en compte pour les actions de fichiers, car la bibliothèque est téléchargée sur APP Moteur avec le code de l’application.
Copiez une bibliothèque tierce
à Utilisez une bibliothèque tierce partie qui ne figure pas dans la liste des bibliothèques intégrées et emballées avec l’environnement d’exécution, procédez comme suit:
-
Créez un répertoire pour stocker les bibliothèques de tiers, telle que
lib/
.mkdir lib
- USA PIP (version 6 ou ultérieure) avec La marque
-t <directory>
Pour copier les bibliothèques dans le dossier que vous avez créées à l’étape précédente. Par exemple:pip install -t lib/ <library_name>
Utilisez-vous HOMMEBREW pour Python dans MacOS?
Problèmes d’homologue
Si vous utilisez HOMEBREW pour Python dans MacOS, une exception peut survenir lorsque vous exécutez
pip install -t
. Ce problème est lié à un problème d’installation homebrew connu (QueryNote on pip install --user
) des paramètres Python qui a homebrew. Pour résoudre ce problème, créez un fichier~/.pydistutils.cfg
dans votre répertoire principal temporairement avec le contenu suivant:prefix=
Assurez-vous de supprimer ce fichier après l’installation de packages pour votre moteur d’application de l’application, comme il sera possible. Evythoue d’installer des packages hors de ce contexte.
accepte -
Créer un fichier appelé
appengine_config.py
dans le même dossier que votre fichierapp.yaml
-
Modifier le fichier
appengine_config.py
et fournit votre répertoire de bibliothèque à la méthodevendor.add()
.dans le fichier
appengine_config.py
Précédent, il est supposé que le dossierlib
est situé dans le répertoire TRA Maintenant Dans certains cas, tels que les tests d’unités, le répertoire de travail actuel peut être différent. Pour éviter les erreurs, vous pouvez explicitement aller sur le chemin complet du dossierlib
avec les éléments suivants:vendor.add(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'lib'))
utilise des fichiers de configuration pip
avec des bibliothèques copies
pip
peut lire une liste de Bibliothèques qui doivent être installées à partir d’un fichier, appelée fichier de configuration. Les fichiers des exigences facilitent la configuration d’un nouvel environnement de développement pour votre application et sont mises à jour vers les versions de la nouvelle bibliothèque.
Un fichier de fichier est un fichier texte avec une ligne de bibliothèque de bibliothèque Nom du package et, éventuellement. , la version pour le package (la valeur par défaut est la dernière version):
Flask==0.10Markdown==2.5.2google-api-python-client
Pour installer les bibliothèques à partir d’un fichier de configuration, utilisez la marque -r
en plus de la marque -t lib
:
pip install -t lib -r requirements.txt
Utilisez une construction -In Bibliothèque tiers et emballé avec l’environnement d’exécution
si la bibliothèque tierce partie figure dans la liste des bibliothèques intégrées et emballées avec l’environnement Python exécutant sur l’APP moteur, vous devez simplement la spécifier dans La directive bibliothèques dans app.yaml
. Par exemple:
libraries:- name: PIL version: "1.1.7"- name: webob version: "1.1.1"
L’app offre automatiquement les bibliothèques demandées lors de la mise en œuvre.
Utilisez des bibliothèques intégrées et emballées avec le développement local du serveur
Beaucoup de bibliothèques intégrées fournissant l’environnement d’application sont automatiquement disponibles pour le serveur de développement local. Pour installer certaines bibliothèques localement, vous devez exécuter gcloud components install app-engine-python-extras
. Si le serveur de développement local détecte que ce composant est nécessaire, vous demandera de l’installer. Les bibliothèques intégrées suivantes doivent être installées localement afin que vous puissiez les utiliser avec le serveur de développement local:
- lxml
- matplotlib
- mysqldb
- NUMPY
- PIL
- CRCMOD
- PYCRYPTO
- GRPCIO
- PROTOBUF
Vous pouvez utiliser la commande PIP pour installer tous ces paquets à partir de l’indice Python Packet (PYPI).
sudo pip install lxml==2.3.5
Selon votre plate-forme, vous devrez peut-être installer des outils d’assistance de compilation et des sources Python pour installer ces bibliothèques.
- Sous Linux, le gestionnaire de paquets peut fournir ces exigences et, souvent, vous pouvez fournir une version déjà compilée de la bibliothèque.
- sous Windows, les installateurs des versions déjà compilées sont généralement disponibles.
- dans MacOS, les outils de ligne de commande Xcode sont nécessaires pour compiler certains packages.
Le serveur de développement utilise la version du package que vous avez installé localement, quelle que soit la version spécifiée de app.yaml
. Si vous le souhaitez, configurez un virtualenv afin que votre projet fournisse la version exacte du package. Notez que Virtualenv n’est utilisé que pour ces packages binaires localement et ne sera pas disponible pour votre application une fois la mise en œuvre. Pour ajouter de nouvelles bibliothèques tiers, utilisez la méthode décrite dans Installer une bibliothèque.
USA Django sur le serveur de développement local
Django est un cadre d’application Web avec toutes les fonctions de Python. Il fournit une batterie complète de composants interchangeables, tels que le bureau, les vues, les middleware, les composants de modèles et de nombreux autres.
L’interface de modélisation de données Django n’est pas compatible avec l’entrepôt de données de moteur d’application. Vous pouvez utiliser les bibliothèques de modélisation de données de l’application (DB ou NDB) dans vos applications DJANGO.SIN, les applications Django tiers qui utilisent l’interface de modélisation de données de Django, en particulier l’application Django Administrator, peut ne pas fonctionner directement avec App Moteur.
La bibliothèque de modélisation de DataSore (DB) est l’option par défaut. Pour utiliser Django avec l’API de stockage NDB, ajoutez 'google.appengine.ext.ndb.django_middleware.NdbDjangoMiddleware',
à l’entrée MIDDLEWARE_CLASSES
dans votre fichier settings.py
de Django. Il est recommandé de l’insérer devant tout autre type de middleware, car certains autres middleware pouvaient appeler le magasin de données, et les appels ne seront pas traités correctement si ce middleware est invoqué avant de pouvoir obtenir. Plus d’informations À propos de Django Middleware dans la documentation du projet.
Pour activer Django sur votre application, spécifiez l’application WSGI et la bibliothèque DJANGO dans app.yaml
...handlers:- url: /.* script: main.app # a WSGI application in the main module's global scopelibraries:- name: django version: "1.4"
La variable d’environnement DJANGO_SETTINGS_MODULE
doit être configurée avec le nom de votre module de configuration Django, qui est généralement 'settings'
, avant que les packages ne soient importés.
Si le module de configuration Django n’est pas settings.py
, configurez la variable d’environnement selon le cas dans le fichier app.yaml
:
env_variables: DJANGO_SETTINGS_MODULE: 'myapp.settings'
Vous pouvez aussi le faire dans Votre code 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
sur le serveur de développement local
MATPLOTLIB est une bibliothèque de présentation qui produit des graphiques et des figures dans une variété de formats d’image. Dans le moteur App, les modes de matplotlib interactifs ne sont pas compatibles et il existe d’autres fonctions qui ne sont pas disponibles non plus. Cela signifie que vous ne pouvez pas utiliser pyplot.show()
, comme suggéré dans plusieurs instructions MATPLOTLIB. Au lieu de cela, vous devez utiliser pyplot.savefig()
pour écrire les données d’image dans la transmission de sortie, une instance ou votre stockage sur le cloud à l’aide du stockage en nuage de la bibliothèque Client.
Matplotlib permet une personnalisation étendue à l’aide du fichier de configuration matplotlibrc
, qui doit être placé dans le répertoire de niveau supérieur de l’application. Vous pouvez également définir la variable d’environnement dans un chemin d’accès par rapport au répertoire de votre application.
Le backend par défaut est AGG, qui vous permet d’écrire des fichiers. De tous les formats compatibles: PNG (le format par défaut), RAW, PS, PDF, SVG et SVGZ. Si vous autorisez la bibliothèque de la bibliothèque à être disponible en ajoutant PIL
à la section de app.yaml
, le backend AGG prendra également automatiquement l’écriture des formats d’image JPEG et TIFF.
MATPLOLIB compte plusieurs sources disponibles automatiquement. Vous pouvez utiliser des polices personnalisées si vous les téléchargez au format TTF avec l’application et configurez la variable d’environnement TTFPATH
comme itinéraire dans lequel ils se trouvent, par rapport au répertoire d’applications. Pour plus d’informations, voir la référence de app.yaml
.
Plusieurs fonctions MATPLOTLIB ne sont pas compatibles avec l’App moteur.En particulier, considérons les éléments suivants:
- aucun répertoire
~/.matplotlib
. Cependant, il existe des endroits alternatifs pour placer le fichier de configurationmatplotlibrc
, comme décrit ci-dessus. - backens interactifs et éléments d’interaction ne sont pas compatibles.
- Les retombées EMF, le Caire et le GDK ne sont pas autorisées.
- Il n’y a pas de stockage en cache et, par conséquent, plusieurs mécanismes recalculeront ou téléchargeront les données qui sont normalement cachées. Entrez les mécanismes de stockage de cache spécifiques désactivés, les données provenant des sources qui calculent
matplotlib.font_manager.FontManager.findfont
, les données d’échantillonnage qui téléchargematplotlib.cbook.get_sample_data
et les données financières que vous téléchargezmatplotlib.finance.fetch_historical_yahoo
.- car il n’y a pas de stockage mis en cache, il n’est pas possible d’appeler
(http://matplotlib.org/api/cbook_api.html#matplotlib.cbook.get_sample_data)
avecavecavecavecavecavecavecavecavecavecavecavecid = « A39E0AC47A »>, sauf si
examples.download
doit être réglé surFalse
- Toutes les fonctions qui invoquent des commandes externes ont été désactivées.
- L’utilisation de
fontconfig
a été désactivé. Les sources se trouvent dans le mécanisme décrit ci-dessus. - L’utilisation de latex n’est pas autorisée pour le rendu de texte. SET
text.usetex
dansTrue
ne fonctionnera pas. - L’utilisation d’un programme de synthétisation PostScript externe n’est pas pris en charge. SET
ps.usedistiller
dansghostscript
ouxpdf
- L’utilisation d’un programme de codage vidéo externe est admis. La méthode
matplotlib.animation.Animation.save
ne fonctionnera pas et, par conséquent, l’emballagematplotlib.animation
n’est pas utile. - ne sont pas autorisés ni La fonction
matplotlib.cbook.report_memory
ni la classematplotlib.cbook.MemoryMonitor
.
- la fonction
matplotlib.test
était désactivé. - Toutes les fonctions qui invoquent des commandes externes ont été désactivées.
- car il n’y a pas de stockage mis en cache, il n’est pas possible d’appeler