Pythonのパッケージ管理に【Poetry】を導入し、環境構築してみた
目次
- ・| はじめに
- ・| Poetry公式
- ・| 構築方法
- ・| Poetryインストール
- ・| プロジェクト作成
- ・| Poetryコマンド実行
- ・| Pythonのコードを実行
- ・| Numpyを使ってみる
- ・| 困りポイント
- ・| さいごに
はじめに
プロジェクトでPythonを使うことになり、環境構築をしてみたので簡単にまとめていきます。
Pythonを初めて触ってみましたが、構築方法によっては環境依存が激しく管理がしずらかったので、今回はパッケージ管理をテーマに取り扱っていきます。
メジャーなPythonのパッケージ管理ツールは下記の種類があります。
- pip
- venv
- pyenv
- pipenv
- poetry
何種類か触ってみたのですが、今回はフォロワーさんに教えていただいたPoetryを使ってみることにしました。
Poetry公式
構築方法
Poetryインストール
早速Poetryをbrewでインストールします。
$ brew install poetry
インストール完了後にバージョンを確認できればOK!
$ poetry --version
# Poetry version 1.1.14
プロジェクト作成
Poetryがインストール出来たらプロジェクトのテンプレートを作成します。
作業ディレクトリに移動しpoetry new
コマンドを実行することで作成可能です。
(今回はtest-python-poetryという名前で作成します。)
$ poetry new test-python-poetry
# プロジェクトが作成されたらディレクトリに移動
$ cd test-python-poetry
作業ディレクトリを確認すると下記の構成でファイルが作成されていますね。
├ tests
│ └ __init__.py
│ └ test_test_python_poetry.py
├ test_python_poetry
│ └ __init__.py
├ poetry.lock
├ pyproject.toml
└ README.rst
Poetryコマンド実行
作成したディレクトリに移動しその中でpoetry run
コマンドを実行すると、仮想環境上でコマンドを実行できます。
試しにPythonのバージョンを確認してみます。
$ poetry run python -V
# Python 3.10.5
今回はpyproject.toml内の[tool.poetry.dependencies]で指定されている、v3.10.5が仮想環境上に入っているPythonバージョンになります。
試しにpoetryを使用せずにバージョンを確認すると下記のような結果になります。
$ python -V
# Python 2.7.18
PCのグローバル環境にはバージョン3.10.5が入っていないので、グローバルで入っているv2.7.18が返ってきます。
Pythonのコードを実行
では早速Pythonのコードを実行してみましょう。
と、その前に、邪魔なファイルを消しつつ若干修正をします。
- test_python_poetry ディレクトリ名前変更→test_poetry
- test_poetry/__init__.py 削除
- test_poetry/__main__.py 作成
- test_poetry/__main__.py 修正
print('Hello World!')
__main__.pyがモジュールとしてのエントリーポイントになってくれるので、ディレクトリ単位でモジュールとして切り出すことが可能です。
準備が出来たら早速poetryでPythonのコードを実行してみましょう!
$ poetry run python -m test_poetry
# Hello World!
Hello World! が返ってきますね!OK!
Numpyを使ってみる
パッケージ管理のテストとして、数値計算ライブラリのNumpyをインストールして実行してみます。
Numpyとは機械学習やディープラーニングでよく使われるライブラリで、ベクトルや行列の演算などの高速な数値計算を行うことが可能です。
NumPy
ライブラリを追加する場合はpoetry add
コマンドを実行することで使用可能になります。
$ poetry add numpy
パッケージの追加が完了したら実行ファイルを作成します。
Numpyのテスト用に新しいディレクトリtest_numpyを作成し、その直下に__main__.pyを作成します。
import numpy
x = numpy.array([1.0, 2.0, 3.0, 4.0, 5.0])
print(x)
y = numpy.arange(10)
print(y)
ファイルが作成できたらpoetry run
コマンドで実行してみます。
$ poetry run python -m test_numpy
# [1. 2. 3. 4. 5.]
# [0 1 2 3 4 5 6 7 8 9]
ちゃんと使えてる!完璧!
困りポイント
VSCodeで確認してみるとライブラリのインポートでエラーを吐いていました。
ただ、実際に実行してみると問題なく動くので、VSCode上でのエラーのようですね。
調べてみると、ローカル(グローバル)にnumpyがインストールされていないので解釈ができないようですね。
これは気持ち悪いので、おいおいやっつけようと思います。笑
さいごに
今回の記事では、初めてPythonを使うにあたってPoetryを導入してみました!
他のパッケージ管理ツールに比べて直感的で扱いやすかったのでとても良かったです!
以上。簡単なまとめとなりますが、少しでも参考になれば幸いです♪
最後までご覧いただきありがとうございました!