Ubuntu 18.04 で Poetry を使えるようにする

仕事で Python を使う機会があったのですが、ほぼ初めてだったので何から手を付けたらよいかわかりません。とりあえず、他の言語と同じ感じでプロジェクトごとにパッケージをインストールしていけばよかろう、と考えて調べてみましたが、PHP における Composer、Rails における Bundler ほどの定番はないようです。現状では、PipenvPoetryPyflowConda といったあたりから好みで選んでよさそうなので、今回は Poetry を使ってみることにしました。

Poetry インストール前の下準備

Ubuntu 18.04 は OS インストール時点で Python 3(3.6)がインストールされているのですが、パッケージをインストールするには必要なファイルが不足しているので、先にインストールします。

sudo apt install python3-distutils python3-venv python3-dev gcc

また、Ubuntu 18.04 では、Python 2 を /usr/bin/python、Python 3 を /usr/bin/python3 という名前でインストールします。新しく Python を使い始めるのに、Python 2 というのもどうかと思いますし、かといってこのままだと Poetry をインストールした後も

/usr/bin/env: ‘python’: No such file or directory

と怒られます。そこで

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 1

を実行し、python3.6 を python として認識させるようにしておきます。

Poetry のインストール

Poetry のインストールはマニュアルページにもあるように

curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python

を実行すれば OK です。インストーラーが poetry コマンドへのパスを通してくれるので、いったんログアウトしてログインしなおすか

source ~/.poetry/env

を実行すれば、poetry コマンドを使うことができます。

poetry config virtualenvs.in-project true

を実行しておくと、プロジェクトのディレクトリ内に仮想環境を作ることができます。

プロジェクトの作成

ここまでくれば、次はプロジェクトの作成です

mkdir ~/projects/hoge
cd ~/projects/hoge
poetry init

でプロジェクトを作成できます。質問に答えていくと、pyproject.toml を作成してくれますが、インストールするパッケージについては、ここでは何も選択せず、後からひとつずつ追加したほうがエラーが出たときに把握しやすいと思います。

パッケージの検索

パッケージの検索は

poetry search [keyword]

で行うことができます。

パッケージの追加

パッケージの追加は

poetry add [packageName]

です。依存関係にあるパッケージもあわせてインストールしてくれます。

スクリプトの実行

構築した仮想環境内でスクリプトを実行するには

poetry run python example.py

を実行します。

コマンドのヘルプ

どんなコマンドが使えるか確認したいときは

poetry --help

それぞれのコマンドの引数などを確認したいときは

poetry [command] --help

でそれぞれ確認できます。

終わりに

複数のバージョンの Python を併用する場合には pyenv と組み合わせる必要があるようですが、とりあえず動かす分には必要ないかな、と。

この記事を書いた人

グッドネイバー

“ Webに悩むお客さまの「よき隣人」でありたい ” をモットーに、Web システム開発(主に Laravel)、Web マーケティング支援の仕事をしています。詳しい業務内容はこちら。お仕事のご依頼・ご相談はこちらからお気軽にどうぞ。