-
Notifications
You must be signed in to change notification settings - Fork 9
Python support
このドキュメントはPythonの認識と実行に関係するHerokuのCedarスタックの一般的な振る舞いに付いて説明します。フレームワークの具体的なチュートリアルは以下を確認してください :
以下のサポートは、どのPythonアプリケーションのタイプがデプロイされているかに関わりなく、提供されています。
HerokuのPythonサポートはルートディレクトリの中にアプリケーションがrequirements.txt
を持っているときだけに、アプリケーションに対して適応されます。もしアプリケーションがモジュールとしての依存ファイルを一つも持っていなくても、アプリケーションに依存ファイルがないということを宣言する、空のrequirements.txt
を含める必要があります。
デフォルトでは、私たちは64bit CPython 2.7.4 を使っています。
オプションとして、私たちはPythonの任意のバージョンもサポートしています。この機能はruntime.txt
ファイルの存在によって有効化されます。
:::term
$ cat runtime.txt
python-2.7.4
更なる詳細についてはPython実行系の指定を確認してください。
以下のライブラリはプラットフォーム側でPythonのアプリケーションを実行し管理するために使われているので、指定することができません。
- Distribute 0.6.36: Pythonのパッケージングツール
- Pip 1.3.1: アプリケーションの依存ファイルの管理
以下のコマンドは依存ファイルの状態を整えるために、アプリケーション上で実行されます :
:::term
$ pip install --use-mirrors -r requirements.txt
.heroku
ディレクトリはパッケージのインストールを高速化するためにプッシュされたものの間でキャッシュされます。
Twistedのような先頭に立つプロセスがなくイベント駆動なウェブフレームワークを含む、純粋なPythonアプリケーションはCedarで完全にサポートされています。
デプロイされたアプリケーションが純粋なPythonアプリケーションであると認識された時には、Herokuは-----> Python app detected
と表示します。
:::term
$ git push heroku master
-----> Python app detected
純粋なPythonアプリケーションが検出された場合は、自動でアドオンが提供されることはありません。 もし、SQLが使えるデータベースが必要ならば、明示的に1つ加えます :
:::term
$ heroku addons:add heroku-postgresql:dev
Pythonアプリケーションが検出された場合はデフォルトのプロセスタイプは作られません。
CedarではすべてのバージョンのDjangoが完全にサポートされています。Djangoアプリケーションはリポジトリの中にあるmanage.py
ファイルの存在によって検出されます。
Djangoのアプリケーションにはdevデータベースアドオンが自動で配備されます。これはDATABASE_URL
環境変数を追加します。