[PYTHON] Développement d'applications mobiles avec IBM Bluemix Kinetise (3)

Dans la continuité de Last, je vais vous expliquer comment déployer Bluemix sur le runtime Python. Fondamentalement, je me réfère à l '[article] de Developer Works (https://www.ibm.com/developerworks/jp/cloud/library/cl-worldbank-charting-app/).

** 4. Déployez Bluemix sur l'environnement d'exécution Python ** 4.1. Installez la commande cf et connectez-vous à Bluemix. La procédure est ici.

cf api https://api.ng.bluemix.net
cf login -compte u-o Organisation-espace s

4.2. Pour créer un package à pousser, copiez C: \ Users \ hoge \ workspace_env3 \ kinetise dans le même répertoire que bmaakinetaise, et copiez le dossier Lib \ site-packages \ rf_alter_api de l'environnement virtuel (env3) dans le dossier bmaakinetaise. Je vais. C'est parce que rf_alter_api n'est pas disponible sur github. Créez ensuite le fichier suivant. Tous fonctionnent avec SJIS.

4.2.1. Requirements.txt décrit les modules qui seront inclus lors du déploiement du runtime Python. Dans ce fichier, décrivez le résultat de l'exécution de pip freeze -l en Python et l'environnement virtuel (env3) dont l'opération a été confirmée. Assurez-vous ensuite que la version de Python que vous avez utilisée jusqu'à présent est incluse dans python-buildpack / builds / runstimes / sur github.

requirements.txt


Python==2.7.10
Django==1.9
django-filter==0.11.0
djangorestframework==3.3.2
drf-extensions==0.2.8
Markdown==2.6.5
wheel==0.24.0
yattag==1.5.2

(Supplément) Vous pouvez identifier la version de Python qui est réellement utilisée sur la console lors du déploiement de cf push. Si vous rencontrez des problèmes de déploiement, installez la version incluse et recommencez depuis le début pour éviter de compliquer l'isolation des problèmes. Je travaillais initialement avec Python 2.7.11 pour le travail de cet article, mais le buildpack ne comprenait que 2.7.10, donc je recommence (à partir de décembre 2015). De plus, si le nom de fichier est incorrect (exigences au lieu d'exigences, c'est-à-dire que le s de fin est manquant) tel que requirements.txt, la commande cf fonctionnera, mais une erreur (Directory '.' N'est pas installable. Veuillez noter que ce sera File'setup.py 'introuvable.). De plus, il sera déployé normalement même s'il n'y a pas de description de Python == 2.7.10. Il est simplement rédigé sous forme de mémo.

4.2.2. Bluemix sera facturé en Go heures. Dans manifest.yml, spécifiez la quantité de mémoire à allouer au runtime python à déployer et au buildpack python.

manifest.yml


---
applications:
- name: bmaakinetise
  memory: 512M
  command: bash run.sh
  buildpack:  https://github.com/cloudfoundry/python-buildpack

(Supplément) Puisque run.sh est décrit dans le shell bash, il s'agit de la commande: bash run.sh. command: sh run.sh fonctionne aussi car il déclare #! / Bin / bash dans run.sh, mais je pense qu'il vaut mieux s'unifier avec bash si c'est bash.

4.2.3 Dans run.sh, spécifiez PORT et décrivez le shell à exécuter au moment du déploiement. Dans ce cas, le rf_alter_api fourni par kinetise est explicitement inclus dans le PYTHONPATH pour éviter que le déploiement ne se termine par une erreur. Le chemin que vous ajoutez est basé sur le message d'erreur de déploiement (module non trouvé). Je pense que ce sera utile pour utiliser des modules personnalisés qui ne peuvent pas être installés avec pip.

run.sh


#!/bin/bash
PYTHONPATH="/home/vcap/app/kinetise/:$PYTHONPATH"
export PYTHONPATH
if [ -z "$VCAP_APP_PORT" ];
then SERVER_PORT=5000;
else SERVER_PORT="$VCAP_APP_PORT";
fi
echo port is $SERVER_PORT
python manage.py runserver --noreload 0.0.0.0:$SERVER_PORT

(Supplément) Le runtime Python peut fonctionner normalement sans la description de PYTHONPATH, mais il est explicitement décrit pour isoler le problème.

4.2.4 Le dossier bmaakinetise ressemble à ceci:

Journal des commandes


 C:\Users\hoge\workspace_env3\répertoire bmaakinetise

2015/12/18  19:06    <DIR>          .
2015/12/18  19:06    <DIR>          ..
2015/12/18  15:23               436 .project
2015/12/18  15:23               604 .pydevproject
2015/12/18  18:25    <DIR>          .settings
2015/12/18  18:25    <DIR>          comments
2015/12/18  17:31            38,912 db.sqlite3
2015/12/18  18:25    <DIR>          kinetise
2015/12/18  15:23               251 manage.py
2015/11/23  22:19               137 manifest.yml
2015/12/18  18:56               151 requirement.txt
2015/11/23  19:41               186 run.sh

4.3 Déployez avec la commande cf.

Journal des commandes


(env3) C:\Users\hoge\workspace_env3\bmaakinetise>cf push  --no-start
Using manifest file C:\Users\hoge\workspace_env3\bmaakinetise\manifest.yml

Creating app bmaakinetise in org [email protected] / space dev as [email protected]...
OK

Creating route bmaakinetise.mybluemix.net...
OK

Binding bmaakinetise.mybluemix.net to bmaakinetise...
OK

Uploading bmaakinetise...
Uploading app files from: C:\Users\hoge\workspace_env3\bmaakinetise
Uploading 60.7K, 32 files
Done uploading
OK

4.4. Lancez le runtime python déployé sur le tableau de bord bluemix et agissez de la même manière dans POSTMAN en utilisant l'URL attribuée par bluemix, comme dans Last time Je vais confirmer.

Ceci conclut la discussion sur le déploiement de Bluemix sur l'environnement d'exécution Python. Ensuite, nous expliquerons le développement et la construction de l'application mobile avec Kinetise.

Recommended Posts

Développement d'applications mobiles avec IBM Bluemix Kinetise (3)
Développement d'applications mobiles avec IBM Bluemix Kinetise (2)
Développement d'applications mobiles avec IBM Bluemix Kinetise (1)
Virtualiser (isoler) l'environnement de développement IBM i python avec chroot
Résumé du développement avec Django
Développement du microservice Bluemix Python