2022年1月10日月曜日

WSL Ubuntu で Heroku with Python

Ubuntu への Heroku CLI のインストール、サンプル Python アプリのデプロイ、アプリ開発のためのローカル Heroku 環境の構築等は Heroku サイトのドキュメント「Getting Started on Heroku with Python」を参考にできますが、WSL Ubuntu に適用しようとするとこの通りに進めるだけではうまくいかなかったので、Heroku のドキュメントを実施するにあたり別途必要なことをここにまとめておきます。

環境

  • Windows11 Home
  • WSL2 Ubuntu 20.04.3

pip の代わりに pipenv を使うための準備

Heroku のドキュメントではローカル開発環境でのサンプルアプリ実行に必要な Python パッケージのインストールに pip を使っています。pip でも問題なく動作するかと思われますが、Python パッケージ環境を肥大化させたくないので pip の代わりに今回は pipenv を使います。

Heroku のドキュメントに書かれたことを実施する前にまずは以下の手順で pipenv 環境の準備をします。

pipenv をインストール

$ sudo apt install pipenv

作業用ディレクトリを作成して移動

$ mkdir /some/where/work
$ cd /some/where/work/

pipenv プロジェクトを作成し pipenv shell を起動

$ pipenv --python $(which python3)
$ pipenv shell

以降、全て pipenv shell で実施

Heroku CLI のインストールに snap を使えない

Ubuntu への Heroku CLI のインストールは「$ sudo snap install heroku --classic」を実行するとのことですが、WSL では snap を使うことは難しいようなのでインストール用のシェルスクリプトをダウンロードして実行。

$ wget https://cli-assets.heroku.com/install-ubuntu.sh
$ chmod +x install-ubuntu.sh
$ ./install-ubuntu.sh

アプリ開発のためのローカル Heroku 環境の構築に pipenv を使う

サンプルアプリに必要なパッケージをインストール。これを実施しないと、後述の pipenv install でエラーが出ます。

$ sudo apt install libpq-dev

このサンプルアプリを実行するために必要な python パッケージは requirements.txt で定義されています。

$ cat requirements.txt
django
gunicorn
django-heroku

ローカルにこれらの Python パッケージをインストール。今回は前述の通り pip の代わりに pipenv を使っています。

$ pipenv install -r requirements.txt

ローカル環境にアプリの変更を適用する時も pip ではなく pipenv

ドキュメントではローカル環境に Python の request パッケージをインストールするのに $ pip install requests としていますがこれも pipenv でやります。

$ pipenv install requests

0 件のコメント:

コメントを投稿