Dies ist ein Memo für mich, die Details sind wie folgt.
https://c9.io/new Erstellen Sie einen Arbeitsbereich, indem Sie Python unter Vorlage auswählen angeben
Standardmäßig verfügt Cloud9 über eine Python-Version von Python2. Ändern Sie diese daher in Python3.5.1. Drücken Sie die grüne + -Taste am unteren Bildschirmrand, um ein Terminal mit [Neues Terminal] zu öffnen und dort Befehle einzugeben.
#Überprüfen Sie die Version vor dem Ändern
$ python --version
Python 2.7.6
#Speichern Sie das Python2-System
$ sudo mv /usr/bin/python /usr/bin/python2
#Python3.Link zu 5
$ sudo ln -s /usr/bin/python3.5 /usr/bin/python
#Bestätigen Sie, dass sich die Version geändert hat
$ python --version
Python 3.5.1
Wenn es so bleibt, wie es ist, ist die diesmal zu verwendende Flasche nicht im Lieferumfang enthalten. Installieren Sie sie daher.
$ sudo pip install bottle
Downloading/unpacking bottle
Downloading bottle-0.12.9.tar.gz (69kB): 69kB downloaded
Running setup.py (path:/tmp/pip_build_root/bottle/setup.py) egg_info for package bottle
Installing collected packages: bottle
Running setup.py install for bottle
changing mode of build/scripts-3.5/bottle.py from 644 to 755
changing mode of /usr/local/bin/bottle.py to 755
Successfully installed bottle
Cleaning up...
Löschen Sie vorerst alle ursprünglich generierten Dateien.
Erstellen Sie eine Datei mit [Rechtsklick] => [Neue Datei] und geben Sie app.py mit [Rechtsklick] => [Umbenennen] in die erstellte Datei ein.
Schließlich werden wir app.py von hier aus implementieren. Wenn Sie in Ihrem Browser auf http: // {your-domain} / hello / zugreifen, wird in erster Linie Hello World angezeigt.
app.py
# -*- coding:utf-8 -*-
import os
from bottle import route, run
@route('/hello/')
def hello():
return "Hello World"
run(host="0.0.0.0", port=int(os.environ.get("PORT", 5000)))
Wenn Sie auf die Schaltfläche Ausführen klicken und diese ausführen, wird die URL angezeigt, die im Browser angezeigt werden soll. Öffnen Sie sie daher. Vergessen Sie zu diesem Zeitpunkt nicht, "/ hello /" mit dem am Ende festgelegten Routing hinzuzufügen.
Es wurde sicher im Browser angezeigt !!
Sobald Sie dies getan haben, verpflichten Sie sich zu GitHub.
Erstellen Sie zunächst ein neues Repository auf GitHub. https://github.com/new
Sie müssen den SSH-Schlüssel registrieren, um von Cloud9 auf GitHub zu übertragen. Registrieren Sie den öffentlichen Schlüssel, der durch [Zahnradmarke] => [SSH-Schlüssel] oben rechts im Cloud 9-Dashboard angezeigt wird, für den verknüpften GitHub. https://c9.io/account/ssh => https://github.com/settings/ssh
Drücken Sie den Schlüssel nach dem Registrieren auf das Cloud 9-Terminal.
#Achten Sie auf das auszuführende Verzeichnis
$ pwd
/home/ubuntu/workspace
#Generieren Sie die für die Bereitstellung erforderlichen Dateien
$ pip freeze | grep bottle > requirements.txt #Es scheint besser, nur das Paket zu platzieren, das Sie verwenden
$ python --version | sed 's/\ /-/g' |sed 's/P/p/g' > runtime.txt
$ echo web: python app.py > Procfile
#Das Folgende dient nur als Referenz. Kopieren Sie den Befehl, der auf dem Bildschirm des neu erstellten Repositorys angezeigt wird.
$ echo "# cloud9-bottle-heroku" >> README.md
git init
git add .
git commit -m "first commit"
git remote add origin https://github.com/path/to-youre-repository.git #Bitte beachten Sie, dass dies von der Person abhängt
git push -u origin master
Als nächstes werden wir es in Heroku reflektieren und weiterhin im Cloud 9-Terminal arbeiten. Der Heroku-Werkzeuggürtel scheint im Voraus installiert worden zu sein, daher ist keine Ergänzung erforderlich.
#Melden Sie sich zuerst bei Heroku an.
$ heroku login
#Erstellen Sie eine App(Bitte ändern Sie dies entsprechend, damit der Name nicht abgedeckt wird)
$ heroku create cloud9-bottle-heroku
Creating cloud9-bottle-heroku... done, stack is cedar-14
https://cloud9-bottle-heroku.herokuapp.com/ | https://git.heroku.com/cloud9-bottle-heroku.git
$ git push heroku master
Counting objects: 21, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (15/15), done.
Writing objects: 100% (21/21), 1.95 KiB | 0 bytes/s, done.
Total 21 (delta 5), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Python app detected
remote: -----> Installing python-3.5.1
remote: $ pip install -r requirements.txt
remote: Collecting bottle==0.12.9 (from -r requirements.txt (line 1))
remote: Downloading bottle-0.12.9.tar.gz (69kB)
remote: Installing collected packages: bottle
remote: Running setup.py install for bottle: started
remote: Running setup.py install for bottle: finished with status 'done'
remote: Successfully installed bottle-0.12.9
remote:
remote: -----> Discovering process types
remote: Procfile declares types -> web
remote:
remote: -----> Compressing...
remote: Done: 49M
remote: -----> Launching...
remote: Released v3
remote: https://cloud9-bottle-heroku.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
To https://git.heroku.com/cloud9-bottle-heroku.git
* [new branch] master -> master
Ich konnte es im Browser öffnen !! https://cloud9-bottle-heroku.herokuapp.com/hello/
Ändern Sie die Einstellung so, dass sie automatisch für Heroku bereitgestellt wird, wenn Sie sie an GitHub senden. Wählen Sie die Zielanwendung im Dashboard von Heroku aus und wählen Sie oben auf dem Bildschirm Bereitstellen aus.
Wählen Sie in der Bereitstellungsmethode GitHub aus, geben Sie den Repository-Namen in Mit GitHub verbinden ein, suchen Sie und verbinden Sie, wo das Ziel-Repository angezeigt wird.
Wählen Sie den entsprechenden Zielzweig aus und klicken Sie auf Automatische Bereitstellungen aktivieren, um die Einstellung abzuschließen.
Sie können anhand der Aktivität oben auf dem Bildschirm überprüfen, ob die automatische Bereitstellung funktioniert. Versuchen Sie, ein leeres Commit vom Cloud 9-Terminal aus zu übertragen, um festzustellen, ob die Bereitstellung tatsächlich abgeschlossen ist.
$ git commit --allow-empty -m "deploy test"
[master 9912982] deploy test
$ git push origin master
Warten Sie nach der Eingabe des Befehls etwa eine Minute und öffnen Sie dann die Registerkarte Aktivität, um festzustellen, ob die Bereitstellung ausgeführt wurde.
Selbst wenn Sie git push heroku master nicht verwenden, können Sie jetzt auf GitHub pushen und das Update wird auf der Heroku-Seite angezeigt.
Es scheint besser, es auf das notwendige Minimum zu beschränken.
#Der Erste
$ pip freeze > requirements.txt
#Ich wurde wütend auf eine Abhängigkeit, als ich zu Heroku drängte
$ git push heroku master
Counting objects: 18, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (13/13), done.
Writing objects: 100% (18/18), 1.73 KiB | 0 bytes/s, done.
Total 18 (delta 4), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Python app detected
remote: -----> Installing python-3.5.1
remote: $ pip install -r requirements.txt
remote: Collecting Pillow==2.3.0 (from -r requirements.txt (line 1))
remote: Downloading Pillow-2.3.0.zip (2.4MB)
remote: Collecting bottle==0.12.9 (from -r requirements.txt (line 2))
remote: Downloading bottle-0.12.9.tar.gz (69kB)
remote: Collecting chardet==2.2.1 (from -r requirements.txt (line 3))
remote: Downloading chardet-2.2.1-py2.py3-none-any.whl (180kB)
remote: Collecting colorama==0.2.5 (from -r requirements.txt (line 4))
remote: Downloading colorama-0.2.5.zip
remote: Collecting decorator==3.4.0 (from -r requirements.txt (line 5))
remote: Downloading decorator-3.4.0.tar.gz
remote: Collecting html5lib==0.999 (from -r requirements.txt (line 6))
remote: Downloading html5lib-0.999.tar.gz (885kB)
remote: Collecting ipython==1.2.1 (from -r requirements.txt (line 7))
remote: Downloading ipython-1.2.1.tar.gz (8.7MB)
remote: Collecting matplotlib==1.3.1 (from -r requirements.txt (line 8))
remote: Downloading matplotlib-1.3.1.tar.gz (42.7MB)
remote: Collecting nose==1.3.1 (from -r requirements.txt (line 9))
remote: Downloading nose-1.3.1.tar.gz (274kB)
remote: Collecting numpy==1.8.2 (from -r requirements.txt (line 10))
remote: Downloading numpy-1.8.2.tar.gz (3.8MB)
remote: Collecting pycurl==7.19.3 (from -r requirements.txt (line 11))
remote: Downloading pycurl-7.19.3.tar.gz (113kB)
remote: Collecting pygobject==3.12.0 (from -r requirements.txt (line 12))
remote: Could not find a version that satisfies the requirement pygobject==3.12.0 (from -r requirements.txt (line 12)) (from versions: 2.28.3)
remote: No matching distribution found for pygobject==3.12.0 (from -r requirements.txt (line 12))
remote:
remote: ! Push rejected, failed to compile Python app
remote:
remote: Verifying deploy....
remote:
remote: ! Push rejected to cloud9-bottle-heroku.
remote:
To https://git.heroku.com/cloud9-bottle-heroku.git
![remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/cloud9-bottle-heroku.git'
#Es war okay, wenn ich es drückte.
$ pip freeze | grep bottle > requirements.txt
Als ich das Ergebnis der Python-Version druckte, war es Python anstelle von Python.
#Schlechtes Beispiel
Python-3.5.1
#Gutes Beispiel
python-3.5.1
Dank Cloud9 ist es nicht erforderlich, eine lokale Umgebung zu erstellen, aber aus irgendeinem Grund bleibt die Bewegung manchmal hängen, und in meiner Umgebung war die Entwicklung mit PyCharm ein angenehmerer Eindruck. In Anbetracht des Falls der Entwicklung mit mehreren Terminals halte ich es jedoch für schwierig, diese Entwicklungsumgebungen anzuordnen, sodass ich denke, dass es in einem solchen Fall eine Option gibt. Da Heroku diesmal nur das Minimum verwendet, gibt es viele Teile, die ich noch nicht gut verstehe, und es scheint, dass ich 6 Stunden am Tag schlafen muss, aber es ist schön, die Anwendung ohne detaillierte Einstellungen veröffentlichen zu können. ..
Heroku Python Support | Heroku Dev Center : https://devcenter.heroku.com/articles/python-support Veröffentlichen Sie eine Web-App in 4 Minuten 33 Sekunden mit Heroku x Flasche --Qiita: http://qiita.com/ohbarye/items/55ec574f10685a012baf
Recommended Posts