Skip to content
shunter1112 edited this page Aug 18, 2013 · 1 revision

このドキュメントはPythonの認識と実行に関係するHerokuのCedarスタックの一般的な振る舞いに付いて説明します。フレームワークの具体的なチュートリアルは以下を確認してください :

もし、Heroku上のPythonに関して質問がある場合は、[Herokuのフォーラム上のPython](https://discussion.heroku.com/category/python)の中で議論することを検討してみてください。HerokuとコミュニティベースであるPythonの両方の専門家がそこにはいます。

一般的なサポート

以下のサポートは、どの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ディレクトリはパッケージのインストールを高速化するためにプッシュされたものの間でキャッシュされます。

Pythonのアプリケーション

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アプリケーションが検出された場合はデフォルトのプロセスタイプは作られません。

Djangoアプリケーション

CedarではすべてのバージョンのDjangoが完全にサポートされています。Djangoアプリケーションはリポジトリの中にあるmanage.pyファイルの存在によって検出されます。

アドオン

Djangoのアプリケーションにはdevデータベースアドオンが自動で配備されます。これはDATABASE_URL環境変数を追加します。

Clone this wiki locally