Ubuntu 18.04 で Poetry を使えるようにする
仕事で Python を使う機会があったのですが、ほぼ初めてだったので何から手を付けたらよいかわかりません。とりあえず、他の言語と同じ感じでプロジェクトごとにパッケージをインストールしていけばよかろう、と考えて調べてみましたが、PHP における Composer、Rails における Bundler ほどの定番はないようです。現状では、Pipenv、Poetry、Pyflow、Conda といったあたりから好みで選んでよさそうなので、今回は 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 と組み合わせる必要があるようですが、とりあえず動かす分には必要ないかな、と。
ディスカッション
コメント一覧
まだ、コメントがありません