django-herokuがインストール出来ない

pipでdjango-herokuをインストールしようとするとdjango-herokuが依存しているpsycopg2がコンパイルにコケてインストール出来ないことがあります。

Macの場合

$ brew install postgresql

をしてから、インストールし直せば、大抵はインストール出来るようになりますが、それでもなおインストール出来ない時の回避策のご紹介。

回避策

一番手っ取り早いのは、原因であるpsycopg2をインストールしないのが一番の解決法です。

ただ、普通にdjango-herokuをインストールするとpsycopg2もインストールされてしまうので、--no-depsオプションを付けてインストールしてあげます。

$ pip install --no-deps django-heroku

--no-depsは依存パッケージを同時にインストールしないようにするオプションです。

こうすると、django-herokuのみがインストールされます。

当然、django-herokuの依存パッケージをインストールしていないのでこのままでは使い物になりません。
なので、psycopg2以外の依存パッケージを手動でインストールしてあげます。

$ pip install dj-database-url whitenoise

psycopg2-binaryをインストールする

psycopg2ないとダメじゃない?

はいそうです。

なので、psycopg2の代わりにpsycopg2-binaryをインストールします。

$ pip install psycopg2-binary

psycopg2-binaryは名前から想像がつくかもしれませんが、コンパイル済みのpsycopg2です。

これで、psycopg2のインストールを回避しつつdjango-herokuが利用できるようになります。

おまけ(requirements.txt)

requirements.txtに書いておきたい場合は、以下のように書くと良いです。

--install-option="--no-deps" django-heroku
dj-database-url
psycopg2-binary
whitenoise