poetry を使って python の project を作る
poetry を使って python の project を作る

poetry を使って python の project を作る

はじめに

python のパッケージ管理ツールは色々とあるが、その中でも poetry を使って python の project を作る方法を記載します

1. poetry をインストールする

mac の場合は以下

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

2. poetry の初期設定をしておく

以下のコマンドを打つ事で、virtualenv が各 project の直下に置かれるようになります

virtualenv を project の直下に置く利点は主に以下になります

  • 複数の project があっても、フォルダを移動する事で環境を切り替えられる
  • VSCode (等の IDE) がインストールした library を認識してくれるようになる
$ poetry config virtualenvs.in-project true --local

--local option をつける事で、 virtualenvs.in-project 設定自体を git 管理する事ができるようになります

設定は以下のコマンドで確認が可能です

$ poetry config --list
cache-dir = "/Users/name/Library/Caches/pypoetry"
experimental.new-installer = true
installer.parallel = true
virtualenvs.create = true
virtualenvs.in-project = true
virtualenvs.path = "{cache-dir}/virtualenvs"

3. poetry でプロジェクトを作る

以下のコマンドで、project を作ります

// folder ごと作りたい場合
$ poetry new <project-name>

// すでにある folder を poetry 管理したい場合
$ poetry init

poetry new すると、以下のようなフォルダ構造が作られます

$ poetry new test-project
$ cd test-project/
$ tree
.
├── README.rst
├── pyproject.toml
├── test_project
│   └── __init__.py
└── tests
    ├── __init__.py
    └── test_test_project.py

poetry init の場合は対話式のインターフェースが起動し、必要な情報を入れ終わると pyproject.toml のみが作られます

4. poetry に library を追加

poetry add コマンドを使って必要な library を追加できます

例えば pandas を追加したい場合は以下のような形になります

$ poetry add pandas

5. poetry 環境を構築

以下のコマンドで実際に環境を構築します

$ poetry install

root 直下にpoetry.lock が作られるはずなので確認してください

手順 2 で virtualenvs.in-project true が設定できている場合は project root に .venv フォルダが作られているはずです

.venv フォルダが作られていない場合は既に virtualenv が作られている場合があるので、一度削除して再度環境を作り直してください

$ poetry env list
$ poetry env remove <env-name>

6. poetry 環境での実行

poetry 環境では、 python コマンドを直接打たずに以下のようにします

$ poetry run <コマンド>

例えば jupyter notebook を立ち上げたい場合は以下のようになります

$ poetry run jupyter notebook