[PYTHON]

Python, AtCoder, BFS [Python + Heroku] Vom Zustand ohne Python bis zur Anzeige von etwas mit Heroku (Teil 1) Was ist das? In Heroku-Einführungsartikeln sehe ich unter OSX oft ruby und node.js. Nicht so.

Beginnen wir an einem solchen Ort. Als Ziel gehe ich nicht zu Apps oder Ähnlichem. Bis etwas angezeigt wird.

Heroku offizielle Python-Einführungsdokumentation https://devcenter.heroku.com/articles/getting-started-with-python Es ist auch ein Erfahrungsprotokoll von (ich esse jedoch nur die Teile, die ich für nötig halte).


Installation

Python-Installation

Laden Sie es hier herunter und installieren Sie es.

https://www.python.org/downloads/

heroku02.png

Hier habe ich 2.7.11 eingefügt, was zu diesem Zeitpunkt das neueste in 2 Serien war. (Wenn es sich um ein CG-System handelt, ist es meiner Meinung nach besser, die Version mit Python im Hauptwerkzeug abzugleichen. Hier eilte ich, ohne darüber nachzudenken. Dann dachte ich später, dass ich in 3 Serien setzen würde)

Durch den Pfad gehen

Fügen Sie es der Windows-Umgebungsvariablen PATH hinzu.

C:\Python27;C:\Python27\Scripts;

Eigentlich habe ich diesmal vergessen, dies auf halbem Weg zu tun und es von der Mitte aus normal gemacht (?). Auf halbem Weg kann es also Fehler geben, die nicht aufgetreten sind, als Sie dies zum ersten Mal getan haben. Es kann nicht enthalten sein.

Wenn Sie es mit einem Befehl hinzufügen möchten, ist es "setx"

python


> setx /?

Es gibt drei Möglichkeiten, SetX zu verwenden:

Syntax 1:
    SETX [/S-System[/U [Domain\]Nutzer[/P [Passwort]]]]Variabler Wert[/M]

Syntax 2:
    SETX [/S-System[/U [Domain\]Nutzer[/P [Passwort]]]]
Variable/K Registrierungspfad[/M]

Syntax 3:
    SETX [/S-System[/U [Domain\]Nutzer[/P [Passwort]]]]
         /F-Datei{Variable{/A x,y | /R x,y string}[/M] | /X} [/D Trennzeichen]

Erläuterung:
Erstellen Sie Umgebungsvariablen oder Umgebungsvariablen in der Benutzer- oder Systemumgebung
Veränderung. Argumente, Registrierungsschlüssel oder Dateieingabe
Sie können darauf basierend Variablen festlegen.
(Unterlassung)

virtualenv Du hast gesagt, dass du virtualenv brauchst, also werde ich es einfügen.

python


Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec  5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.

>>> import pip
>>> pip.main(["list"])
pip (7.1.2)
setuptools (18.2)
0

>>> pip.main(["install","virtualenv"])
Collecting virtualenv
  Downloading virtualenv-13.1.2-py2.py3-none-any.whl (1.7MB)
    100% |################################| 1.7MB 271kB/s
Installing collected packages: virtualenv
Successfully installed virtualenv-13.1.2
0
>>>

Sie können normalerweise "pip install virtualenv" verwenden, aber Hier über Pythons Pip-Modul.

Heroku-Installation

Es gibt ein Installationsprogramm namens ** heroku Toolbelt **, das Heroku und eine Reihe damit verbundener Tools enthält.

https://toolbelt.heroku.com/

Der Inhalt ist Git und Rubin. heroku01.png

↓ Es wird an dieser Stelle installiert und Ihrem PFAD hinzugefügt.

Technical details

The heroku client will be installed into C:\Program Files\Heroku and will be added to your %PATH%.

Haben Sie zum Zeitpunkt der Installation beim letzten Git eine Weile gewartet? Es wird sein, aber Sie müssen keine Angst haben.

git Zu diesem Zeitpunkt ist auch Git enthalten. Ich werde es prüfen. Mit emotionalen Problemen.

git -h.

git-h


C:\Users\{user}>git -h
Unknown option: -h
usage: git [--version] [--help] [-C <path>] [-c name=value]
           [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
           [-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
           [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
           <command> [<args>]

HM.

getting-started Befolgen Sie diese Prozedur unten.

https://devcenter.heroku.com/articles/getting-started-with-python

heroku Unmittelbar nach der Installation von Toolbelt "Einmal installiert, können Sie es mit dem Befehl" heroku "verwenden!" Es sagt so etwas wie Wie auch immer, ich habe es gesehen und es unschuldig mit "Heroku" ausgeführt. Hat.

Dann lief so etwas wie Initialisierung, Ich habe eine Weile gewartet, weil ich Abhängigkeiten hinzugefügt habe oder so. Lass uns warten. Ich war verärgert, weil ich dachte, ich hätte etwas falsch gemacht. Ich muss keine Minute warten. Jedes Mal, wenn ich an einem unerwarteten Ort warte, bekomme ich Angst. Wegen einer kleinen Person

Übrigens wurde im Protokoll zu diesem Zeitpunkt das Fenster nach Abschluss der Initialisierung automatisch geschlossen. Da ist gar nichts (Weil es mit Win Key> Heroku geöffnet wurde)

Einloggen

Heroku Login Sie werden dann nach der E-Mail-Adresse und dem Passwort Ihres Heroku-Kontos gefragt.

python


Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\{user}>heroku login
Enter your Heroku credentials.
Email: [email protected]
Password (typing will be hidden):
Logged in as [email protected]

Ja. Es sieht aus wie.

Versionsbestätigung

heroku version

python


C:\Users\{user}>heroku version
heroku/toolbelt/3.42.29 (i386-mingw32) ruby/2.1.7
heroku-cli/4.27.13-9dddf39 (386-windows) go1.5.3
=== Installed Plugins
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]

Ich fahre fort, während ich dies lese (▼)

http://developers.mobage.jp/blog/how-to-use-for-beginners-heroku

Es ist der Inhalt, der dort in [2] geschrieben ist.

Vorbereitung des Teststandorts testen

Erstellen Sie einen Ordner, den Sie dieses Mal als Workshop verwenden möchten, und verschieben Sie ihn.

python


C:\Users\{user}>cd C:\Users\{user}\Documents\path\to\heroku_proj

C:\Users\{user}\Documents\path\to\heroku_proj>mkdir testapp

C:\Users\{user}\Documents\path\to\heroku_proj>cd testapp

C:\Users\{user}\Documents\path\to\heroku_proj\testapp>

Holen Sie sich Heroku Python Probe

Sie werden ** Python-Getting-Started ** auf Github veröffentlicht. git clone https: // github.com / heroku / python-Getting-Started.git

python


C:\Users\{user}\Documents\path\to\heroku_proj\testapp>git clone https://github.com/heroku/python-getting-started.git
Cloning into 'python-getting-started'...
remote: Counting objects: 204, done.
emote: Total 204 (delta 0), reused 0 (delta 0), pack-reused 204Receiving objects
Receiving objects:  75% (153/204)
Receiving objects: 100% (204/204), 32.17 KiB | 0 bytes/s, done.
Resolving deltas: 100% (91/91), done.
Checking connectivity... done.

Bewegen Sie sich dann mit cd

python


C:\Users\{user}\Documents\path\to\heroku_proj\testapp>cd python-getting-started

C:\Users\{user}\Documents\path\to\heroku_proj\testapp\python-getting-started>

Bitte haben Sie von nun an Verständnis dafür, dass alle Befehle von C: \ Users \ {user} \ Documents \ path \ to \ heroku_proj \ testapp \ python-Getting-Start> ausgeführt werden.

Heroku App erstellen

Imakoko

https://devcenter.heroku.com/articles/getting-started-with-python#deploy-the-app

heroku create.

python


>heroku create

Creating app... done, stack is cedar-14
https://ancient-taiga-0000.herokuapp.com/ | https://git.heroku.com/ancient-taiga-0000.git

** Was ist Ancient-Taiga-0000? ** ** ** Ist es ein plötzlicher Küchenbegriff? Ich denke, aber wenn Sie den Namen beim Erstellen nicht festlegen, scheint es, dass ** es automatisch benannt wird **. Ist es okay, weil es ein Test ist?

Wenn Sie es richtig benennen heroku create your-app-name auf diese Weise. Oder Sie können sich über einen Browser bei heroku anmelden und von dort aus wechseln (nicht abgeschlossen).

Bereitstellen

Hier ist eine plötzliche Git-Erfahrung.

git push heroku master

Es dauert ungefähr 1-2 Minuten.

python


>git push heroku master
Counting objects: 204, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (98/98), done.
Writing objects: 100% (204/204), 32.16 KiB | 0 bytes/s, done.
Total 204 (delta 91), reused 204 (delta 91)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Python app detected
remote: -----> Installing runtime (python-2.7.11)
remote: -----> Installing dependencies with pip
remote:        Collecting dj-database-url==0.3.0 (from -r requirements.txt (line 1))
remote:        Downloading dj_database_url-0.3.0-py2.py3-none-any.whl
remote:        Collecting Django==1.9.1 (from -r requirements.txt (line 2))
remote:        Downloading Django-1.9.1-py2.py3-none-any.whl (6.6MB)
remote:        Collecting gunicorn==19.4.5 (from -r requirements.txt (line 3))
remote:        Downloading gunicorn-19.4.5-py2.py3-none-any.whl (112kB)
remote:        Collecting psycopg2==2.6.1 (from -r requirements.txt (line 4))
remote:        Downloading psycopg2-2.6.1.tar.gz (371kB)
remote:        Collecting whitenoise==2.0.6 (from -r requirements.txt (line 5))
remote:        Downloading whitenoise-2.0.6-py2.py3-none-any.whl
remote:        Installing collected packages: dj-database-url, Django, gunicorn, psycopg2, whitenoise
remote:        Running setup.py install for psycopg2
remote:        Successfully installed Django-1.9.1 dj-database-url-0.3.0 gunicorn-19.4.5 psycopg2-2.6.1 whitenoise-2.0.6
remote:
remote: -----> Preparing static assets
remote:        Running collectstatic...
remote:        Post-processed 'admin/js/vendor/xregexp/LICENSE-XREGEXP.txt' as 'admin/js/vendor/xregexp/LICENSE-XREGEXP.d64cecf4f157.txt'
(Weggelassen)
remote:        Post-processed 'lang-logo.png' as 'lang-logo.019c8743b7cf.png'
remote:        58 static files copied to '/app/staticfiles', 58 post-processed.
remote:
remote: -----> Discovering process types
remote:        Procfile declares types -> web
remote:
remote: -----> Compressing... done, 42.1MB
remote: -----> Launching...
remote:        Released v4
remote:        https://ancient-taiga-0000.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy.... done.
To https://git.heroku.com/ancient-taiga-0000.git
 * [new branch]      master -> master

>

** require.txt ** befindet sich in Python-Getting-Started, Während des obigen Vorgangs wird es gelesen und mit pip installiert.

Dann "heroku ps: scale web = 1".

python


>heroku ps:scale web=1
Scaling dynos... done, now running web at 1:Free.

von heroku open

python


>heroku open
Opening ancient-taiga-0000... done

Dann wird der Browser gestartet und die App (hier * old-taiga-0000.herokuapp.com *) geöffnet.

Hmm.


Bisher

--Vorbereitung

Ich konnte erleben ...


Protokoll anzeigen

Imakoko

https://devcenter.heroku.com/articles/getting-started-with-python#view-logs

heroku logs --tail

Wenn Sie "--tail" hinzufügen, werden Protokolle immer mehr in Echtzeit erfasst. Beim Anhalten "Ctl + C"

python


>heroku logs --tail
2016-01-17T13:37:24.947150+00:00 heroku[api]: Enable Logplex by [email protected]
2016-01-17T13:37:24.947150+00:00 heroku[api]: Release v2 created by [email protected]
2016-01-17T13:40:12.180138+00:00 heroku[api]: Attach DATABASE resource by [email protected]
2016-01-17T13:40:12.180177+00:00 heroku[api]: Release v3 created by [email protected]
2016-01-17T13:40:12.470201+00:00 heroku[api]: Scale to web=1 by [email protected]
2016-01-17T13:40:12.529336+00:00 heroku[api]: Deploy fe7f948 by [email protected]
2016-01-17T13:40:12.529336+00:00 heroku[api]: Release v4 created by [email protected]
2016-01-17T13:40:12.842955+00:00 heroku[slug-compiler]: Slug compilation started
2016-01-17T13:40:12.842964+00:00 heroku[slug-compiler]: Slug compilation finished
2016-01-17T13:40:15.096972+00:00 heroku[web.1]: Starting process with command `gunicorn gettingstarted.wsgi --log-file -`
2016-01-17T13:40:16.642246+00:00 app[web.1]: [2016-01-17 13:40:16 +0000] [3] [INFO] Listening at: http://0.0.0.0:10178 (3)
2016-01-17T13:40:16.642313+00:00 app[web.1]: [2016-01-17 13:40:16 +0000] [3] [INFO] Using worker: sync
2016-01-17T13:40:16.640646+00:00 app[web.1]: [2016-01-17 13:40:16 +0000] [3] [INFO] Starting gunicorn 19.4.5
2016-01-17T13:40:16.645613+00:00 app[web.1]: [2016-01-17 13:40:16 +0000] [9] [INFO] Booting worker with pid: 9
2016-01-17T13:40:16.684880+00:00 app[web.1]: [2016-01-17 13:40:16 +0000] [10] [INFO] Booting worker with pid: 10
2016-01-17T13:40:17.171330+00:00 heroku[web.1]: State changed from starting to up
(ry
2016-01-17T13:45:25.167623+00:00 app[web.1]: Not Found: /favicon.ico

Wenn Sie versuchen, mit ctl + c zu stoppen, wird Folgendes angezeigt

python


 !    Command cancelled.
Möchten Sie den Stapeljob beenden?(Y/N)? y

>

Procfile Imakoko

https://devcenter.heroku.com/articles/getting-started-with-python#define-a-procfile

Es wird direkt unter "Erste Schritte mit Python" platziert, das git-geklont wurde. Ich würde gerne etwas über ** Procfile-Datei ** erfahren.

Auf Github das

https://github.com/heroku/python-getting-started/blob/master/Procfile

Im Ausgangszustand ist der Inhalt so web: gunicorn gettingstarted.wsgi --log-file -

Es scheint, dass Sie "clock: ~~" schreiben, wenn Sie möchten, dass Heroku es automatisch verarbeitet. Es ist eine Datei, die solche Einstellungen schreibt.

ps Imakoko

https://devcenter.heroku.com/articles/getting-started-with-python#scale-the-app

heroku ps, probier es aus.

python


>heroku ps
=== web (Free): gunicorn gettingstarted.wsgi --log-file -
web.1: up 2016/01/17 22:40:17 (~ 18m ago)

>

heroku run ~~

Es scheint, dass etwas mit "Heroku Run ~~" gemacht werden kann

python


>heroku run
 !    Usage: heroku run COMMAND
 !
 !    Example: heroku run bash

>

Ich brauche etwas nach dem "Laufen". .. .. Übrigens habe ich Heroku nicht geholfen, seit ich angefangen habe, daran zu arbeiten, also werde ich es hier versuchen.

python


>heroku -h
Usage: heroku COMMAND [--app APP] [command-specific-options]

Primary help topics, type "heroku help TOPIC" for more details:

  addons    #  manage add-on resources
  apps      #  manage apps (create, destroy)
  auth      #  authentication (login, logout)
  config    #  manage app config vars
  domains   #  manage domains
  logs      #  display logs for an app
  ps        #  manage dynos (dynos, workers)
  releases  #  manage app releases
  run       #  run one-off commands (console, rake)
  sharing   #  manage collaborators on an app

Additional topics:

  2fa          #  manage two-factor authentication settings
  buildpacks   #  manage the buildpack for an app
  certs        #  manage ssl endpoints for an app
  drains       #  display drains for an app
  features     #  manage optional features
  fork         #  clone an existing app
  git          #  manage local git repository for app
  help         #  list commands and display help
  keys         #  manage authentication keys
  labs         #  manage optional features
  local        #  run heroku app locally
  login        #  Login with your Heroku credentials.
  maintenance  #  manage maintenance mode for an app
  members      #  manage membership in organization accounts
  orgs         #  manage organization accounts
  pg           #  manage heroku-postgresql databases
  pgbackups    #  manage backups of heroku postgresql databases
  plugins      #  manage plugins to the heroku gem
  regions      #  list available regions
  spaces       #  manage heroku private spaces
  stack        #  manage the stack for an app
  status       #  Status of Heroku Platform
  twofactor    #  manage two-factor authentication settings
  update       #  update the heroku client
  version      #  display version

Überprüfen Sie die Informationen der Heroku-App

Listen Sie Ihre Apps auf heroku apps

>heroku apps
=== My Apps
ancient-taiga-0000

Natürlich gibt es derzeit nur einen.

heroku apps:info

>heroku apps:info
=== ancient-taiga-0000
Addons:        heroku-postgresql:hobby-dev
Dynos:         web: 1
Git URL:       [email protected]:ancient-taiga-0000.git
Owner:         [email protected]
Region:        us
Repo Size:     36 kB
Slug Size:     42 MB
Stack:         cedar-14
Web URL:       https://ancient-taiga-0000.herokuapp.com/

Sie können überprüfen, welche Art von Add-On Sie verwenden und die URL für den Zugriff. Apropos, ** Region sind wir **.

Plug-In-Bestätigung

heroku plugins

python


>heroku plugins
=== Installed Plugins
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]

Add-On-Bestätigung

heroku addons

>heroku addons

Add-on                                           Plan       Price
───────────────────────────────────────────────  ─────────  ──
───
heroku-postgresql (postgresql-dimensional-7392)  hobby-dev  free
 └─ as DATABASE

The table above shows add-ons and the attachments to the current app (ancient-taiga-0000) or other apps.

Öffnen Sie die Seite des Add-Ons

>heroku addons:open heroku-postgresql
Opening heroku-postgresql (postgresql-dimensional-7392) for ancient-taiga-0000... done

Dann wurde dies ↓ geöffnet

https://postgres.heroku.com/databases

[email protected] does not exist or cannot be accessed by this account 

Ist das so.

Konto hinzufügen und überprüfen

Übrigens werden einige Add-Ons erst installiert, wenn Sie Ihr Konto überprüfen. Kurz gesagt, bitte registrieren Sie Ihre Zahlungsinformationen (Kreditkarte) Es scheint, dass.

※Referenz: Erstellen Sie einen Twitter ToDo-Dienst mit Unfiltered + Heroku (versuchen Sie es mit dem Heroku-Add-on, der Einstellungsdatei und Scalate) @ Mei Noshi http://mao-instantlife.hatenablog.com/entry/20120310/1331388396

Wenn Sie die Registrierung der Zahlungsinformationen überspringen und versuchen, ein Add-On hinzuzufügen, verhalten Sie sich wie folgt. verify.png

Ich wusste es!

Release-Informationen

heroku releases

>heroku releases
=== ancient-taiga-0000 Releases
v4  Deploy fe7f948            [email protected]  2016/01/17 22:40:12 (~ 2h ago)
v3  Attach DATABASE resource  [email protected]  2016/01/17 22:40:12 (~ 2h ago)
v2  Enable Logplex            [email protected]  2016/01/17 22:37:24 (~ 2h ago)
v1  Initial release           [email protected]  2016/01/17 22:37:24 (~ 2h ago)

Einstellungen anzeigen

heroku config

>heroku config
=== ancient-taiga-0000 Config Vars
DATABASE_URL: postgres://abcdefghijklmn:GaEMJZBYWhqmI9xXOOudegwpxf@ec2-54-83-61-45.compute-1.amazonaws.com:5432/d7vc7kpol1v9vn

Nächster

Es ist lange her, also einmal. ~~ Wenn du die zweite Hälfte schreiben kannst, werde ich den Link einfügen ~~> Ich habe die zweite Hälfte geschrieben

http://qiita.com/it_ks/items/ca6c7f6e8fc89e49e46d

Recommended Posts