Web開発ログ | エンジニアに役立つ情報 | 開発の中での気づきを発信

高卒Devlog

Pythonのパッケージ管理に【Poetry】を導入し、環境構築してみた

thumbnail

こんにちは! RYOTAです!

当記事をご覧くださりありがとうございます!

Poetryというパッケージ管理ツールを使ってPythonの環境構築をしてみたので簡単にログを残していきます。

はじめに

プロジェクトでPythonを使うことになり、環境構築をしてみたので簡単にまとめていきます。
Pythonを初めて触ってみましたが、構築方法によっては環境依存が激しく管理がしずらかったので、今回はパッケージ管理をテーマに取り扱っていきます。
メジャーなPythonのパッケージ管理ツールは下記の種類があります。

  • pip
  • venv
  • pyenv
  • pipenv
  • poetry

何種類か触ってみたのですが、今回はフォロワーさんに教えていただいたPoetryを使ってみることにしました。

Poetry公式

https://python-poetry.org/

構築方法

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のコードを実行してみましょう。
と、その前に、邪魔なファイルを消しつつ若干修正をします。

  1. test_python_poetry ディレクトリ名前変更→test_poetry
  2. test_poetry/__init__.py 削除
  3. test_poetry/__main__.py 作成
  4. 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を導入してみました!
他のパッケージ管理ツールに比べて直感的で扱いやすかったのでとても良かったです!
以上。簡単なまとめとなりますが、少しでも参考になれば幸いです♪
最後までご覧いただきありがとうございました!