Ceci est un mémo pour moi, les détails sont les suivants.
https://c9.io/new Créer un espace de travail en spécifiant Python dans Choisir un modèle
Par défaut, Cloud9 a une version Python de Python2, alors changez-la pour utiliser Python3.5.1. Appuyez sur le bouton vert + en bas de l'écran pour ouvrir un terminal avec [Nouveau terminal] et y saisir des commandes.
#Vérifiez la version avant de changer
$ python --version
Python 2.7.6
#Enregistrez le système Python2
$ sudo mv /usr/bin/python /usr/bin/python2
#Python3.Lien vers 5
$ sudo ln -s /usr/bin/python3.5 /usr/bin/python
#Confirmez que la version a changé
$ python --version
Python 3.5.1
S'il est laissé tel quel, la bouteille à utiliser cette fois n'est pas incluse, alors installez-la.
$ 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...
Pour le moment, supprimez tous les fichiers générés à l'origine.
Créez un fichier avec [Clic droit] => [Nouveau fichier], et entrez app.py avec [Clic droit] => [Renommer] sur le fichier créé.
Enfin, nous allons implémenter app.py à partir d'ici. Tout d'abord, lorsque vous accédez à http: // {votre-domaine} / hello / sur votre navigateur, Hello World s'affiche.
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)))
Lorsque vous appuyez sur le bouton Exécuter et que vous l'exécutez, il vous indiquera l'URL à voir dans le navigateur, alors ouvrez-le. À ce stade, n'oubliez pas d'ajouter "/ hello /" avec le routage défini à la fin.
Il a été affiché en toute sécurité sur le navigateur !!
Une fois que vous avez fait cela, engagez-vous sur GitHub.
Tout d'abord, créez un nouveau référentiel sur GitHub. https://github.com/new
L'enregistrement de la clé SSH est requis pour valider de Cloud9 vers GitHub. Enregistrez la clé publique affichée par [Gear mark] => [SSH Keys] en haut à droite du tableau de bord Cloud9 sur le GitHub lié. https://c9.io/account/ssh => https://github.com/settings/ssh
Après avoir enregistré la clé, appuyez dessus sur le terminal Cloud 9.
#Faites attention au répertoire à exécuter
$ pwd
/home/ubuntu/workspace
#Générer les fichiers requis pour le déploiement
$ pip freeze | grep bottle > requirements.txt #Il semble préférable de ne mettre que le package que vous utilisez
$ python --version | sed 's/\ /-/g' |sed 's/P/p/g' > runtime.txt
$ echo web: python app.py > Procfile
#Ce qui suit est pour référence seulement, veuillez copier la commande affichée sur l'écran du référentiel nouvellement créé, le cas échéant.
$ 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 #Veuillez noter que cela dépend de la personne
git push -u origin master
Ensuite, nous allons le refléter dans heroku et continuer à travailler dans le terminal Cloud 9. La ceinture à outils Heroku semble avoir été installée à l'avance, aucun ajout n'est donc nécessaire.
#Tout d'abord, connectez-vous à heroku.
$ heroku login
#Créer une application(Veuillez modifier le cas échéant afin que le nom ne soit pas couvert)
$ 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
J'ai pu l'ouvrir dans le navigateur !! https://cloud9-bottle-heroku.herokuapp.com/hello/
Modifiez le paramètre afin qu'il soit automatiquement déployé sur heroku lorsque vous le poussez sur GitHub. Sélectionnez l'application cible dans le tableau de bord Heroku et sélectionnez Déployer en haut de l'écran.
Sélectionnez GitHub dans la méthode de déploiement, entrez le nom du référentiel dans Se connecter à GitHub, recherchez et connectez-vous où le référentiel cible est affiché.
Sélectionnez la branche cible comme il convient et appuyez sur Activer les déploiements automatiques pour terminer le paramètre.
Vous pouvez vérifier si le déploiement automatique fonctionne à partir de l'activité en haut de l'écran. Essayez de pousser un commit vide depuis le terminal Cloud 9 pour voir si le déploiement est réellement terminé.
$ git commit --allow-empty -m "deploy test"
[master 9912982] deploy test
$ git push origin master
Si vous attendez environ une minute après avoir tapé la commande, puis ouvrez l'onglet Activité, vous pouvez voir que Deploy a été exécuté.
Maintenant, si vous poussez vers GitHub sans git push heroku master, la mise à jour sera également reflétée du côté Heroku.
Il semble préférable de le maintenir au minimum nécessaire.
#la première
$ pip freeze > requirements.txt
#Je me suis fâché avec une dépendance quand j'ai poussé à heroku
$ 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'
#Ce n'était pas grave si je le pressais.
$ pip freeze | grep bottle > requirements.txt
Quand j'ai imprimé le résultat de python --version, c'était python au lieu de Python.
#Mauvais exemple
Python-3.5.1
#Bon exemple
python-3.5.1
Grâce à Cloud9, il n'est pas nécessaire de créer un environnement local, mais pour une raison quelconque, le mouvement se bloque parfois, et dans mon environnement, le développement à l'aide de PyCharm était une impression plus confortable. Cependant, compte tenu du cas du développement avec plusieurs terminaux, je pense qu'il est gênant d'organiser ces environnements de développement, donc je pense qu'il existe une option à utiliser dans un tel cas. Comme Heroku n'utilise que le minimum cette fois, il y a beaucoup de parties que je ne comprends pas bien, et il semble que j'ai besoin de dormir 6 heures par jour, mais c'est bien de pouvoir publier l'application sans paramètres détaillés. ..
Heroku Python Support | Heroku Dev Center : https://devcenter.heroku.com/articles/python-support Publiez une application Web en 4 minutes 33 secondes à l'aide de la bouteille Heroku x - Qiita: http://qiita.com/ohbarye/items/55ec574f10685a012baf