In Fortsetzung von Last werde ich erklären, wie Bluemix zur Python-Laufzeit bereitgestellt wird. Grundsätzlich verweise ich auf den [Artikel] von Developer Works (https://www.ibm.com/developerworks/jp/cloud/library/cl-worldbank-charting-app/).
** 4. Stellen Sie Bluemix zur Python-Laufzeit bereit ** 4.1 Installieren Sie den Befehl cf und stellen Sie eine Verbindung zu Bluemix her. Die Vorgehensweise ist hier.
cf api https://api.ng.bluemix.net
cf login -u Konto-o Organisation-s Raum
4.2 Um ein Push-Paket zu erstellen, kopieren Sie C: \ Users \ hoge \ workspace_env3 \ kintise in dasselbe Verzeichnis wie bmaakinetaise und kopieren Sie den Ordner Lib \ site-packages \ rf_alter_api der virtuellen Umgebung (env3) in den Ordner bmaakinetaise Ich werde. Dies liegt daran, dass rf_alter_api auf github nicht verfügbar ist. Erstellen Sie dann die folgende Datei. Alle arbeiten mit SJIS.
4.2.1. Requirements.txt beschreibt die Module, die bei der Bereitstellung der Python-Laufzeit berücksichtigt werden. Beschreiben Sie in dieser Datei das Ergebnis der Ausführung von pip freeze -l in Python und der virtuellen Umgebung (env3), deren Vorgang bestätigt wurde. Stellen Sie dann sicher, dass die Version von Python, die Sie bisher verwendet haben, in Python-Buildpack / Builds / Runstimes / auf Github enthalten ist.
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
(Ergänzung) Sie können die Version von Python identifizieren, die bei der Bereitstellung von cf push tatsächlich auf der Konsole verwendet wird. Wenn Sie Probleme bei der erfolgreichen Bereitstellung haben, installieren Sie die mitgelieferte Version und beginnen Sie von vorne, um die Problemisolierung nicht zu erschweren. Ich habe anfangs mit Python 2.7.11 für die Arbeit in diesem Artikel gearbeitet, aber das Buildpack enthielt nur 2.7.10, also fange ich von vorne an (Stand Dezember 2015). Wenn der Dateiname falsch ist (Anforderungen anstelle von Anforderungen, dh das nachfolgende s fehlt), z. B. request.txt, funktioniert der Befehl cf, es tritt jedoch ein Fehler auf (Verzeichnis '.' Kann nicht installiert werden. Bitte beachten Sie, dass File'setup.py 'nicht gefunden wird.). Darüber hinaus wird es normal bereitgestellt, auch wenn Python == 2.7.10 nicht beschrieben wird. Es wird einfach als Memo geschrieben.
4.2.2. Bluemix wird in GB Stunden aufgeladen. Geben Sie in manifest.yml die Speichermenge an, die der zu implementierenden Python-Laufzeit und dem Python-Buildpack zugewiesen werden soll.
manifest.yml
---
applications:
- name: bmaakinetise
memory: 512M
command: bash run.sh
buildpack: https://github.com/cloudfoundry/python-buildpack
(Ergänzung) Da run.sh in der Bash-Shell beschrieben ist, lautet der Befehl: bash run.sh. Befehl: sh run.sh funktioniert auch, weil es #! / Bin / bash in run.sh deklariert, aber ich denke, es ist besser, sich mit bash zu vereinen, wenn es bash ist.
4.2.3 Geben Sie in run.sh PORT an und beschreiben Sie die Shell, die zum Zeitpunkt der Bereitstellung ausgeführt werden soll. In diesem Fall ist das von kinetise bereitgestellte rf_alter_api explizit im PYTHONPATH enthalten, um zu verhindern, dass die Bereitstellung fälschlicherweise beendet wird. Der Pfad, den Sie hinzufügen, basiert auf der Meldung eines Bereitstellungsfehlers (Modul nicht gefunden). Ich denke, es wird hilfreich sein, benutzerdefinierte Module zu verwenden, die nicht mit pip installiert werden können.
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
(Ergänzung) Die Python-Laufzeit funktioniert möglicherweise normal, auch wenn PYTHONPATH nicht beschrieben wird, es wird jedoch explizit beschrieben, um das Problem zu isolieren.
4.2.4 Der Ordner bmaakinetise sieht folgendermaßen aus:
Befehlsprotokoll
C:\Users\hoge\workspace_env3\bmaakinetise Verzeichnis
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. Mit dem Befehl cf bereitstellen.
Befehlsprotokoll
(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 Starten Sie die im Bluemix-Dashboard bereitgestellte Python-Laufzeit und machen Sie dasselbe mit POSTMAN unter Verwendung der von bluemix zugewiesenen URL wie in Letztes Mal. Ich werde bestätigen.
Damit ist die Diskussion über die Bereitstellung von Bluemix zur Python-Laufzeit abgeschlossen. Als nächstes erklären wir die Entwicklung und den Aufbau von mobilen Anwendungen mit Kinetise.
Recommended Posts