サイトアイコン たーちゃんの「ゼロよりはいくらかましな」

【python】requirements.txt -> poetryへ移行する

ちょっと前まで、requirements.txtで依存ライブラリ管理して、

test-requirements.txtとか、testRequirements.txtなどに

ファイル分割してテスト周りのライブラリ管理していました。

 

 

最近、これをやめてpythonのパッケージ管理ツールであるpoetryへ移行しましたので、

その時の手順をご紹介。

 

 

 

 

poetryインストール

 

公式ではcurlコマンドを使用した以下方法が推奨されているみたい。

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

 

 

こちらも可。

pip install poetry

 

 

初期化

requirements.txtを管理しているプロジェクトのルートで、

poetry init

 

を実行します。そうすると対話式で以下のようなことを聞かれます。

任意のものは変える必要がなければそのままEnterでOKです。

 

Package name: 任意
Version: 任意
Description: 任意
Author: 任意
License: 任意
Compatible Python versions: pythonのバージョン
Would you like to define your main dependencies interactively? (yes/no): あとで書くのでno

Do you confirm generation? (yes/no): yes

 

 

これを終えると、

pyproject.tomlが出力されていると思います。

 

 

 

依存関係定義

作成されたpyproject.tomlを開いてみましょう。

[tool.poetry]
name = "プロジェクト名"
version = "0.1.0"
description = ""
authors = [""]

[tool.poetry.dependencies]
python = "^3.7"

[tool.poetry.dev-dependencies]

[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"

 

tool.poetry.dependenciesには動作させるために必要なライブラリを

tool.poerty.dev-dependenciesにはテスト周りや上記以外に必要なライブラリを記載します。

 

 

poetry設定

設定でひとつ変えておいた方がいい箇所があります。

poetry config --list

 

このコマンドで設定をみてみましょう。

virtualenvs.in-project

 

この項目がfalseになっていると思います。

この項目はprojectルートに仮想環境を作るかどうか?という設定です。

trueにしておいた方がよいのでtrueに変更しましょう。

 

poetry config virtualenvs.in-project true

と実行して変更しましょう。

 

 

poetry適用

適用は、

poetry install (--no-dev)

 

–no-devをつけた場合はdev-dependenciesの部分を省いて

installされます。

 

 

まとめ

以上でした。

poetryは主流のようなので、覚えておいて損はないと思います。

他にも色々な機能があるようですが、

まずはパッケージ管理としての使用してみた。といったところでした。

 

それでは!!

 

 


にほんブログ村


人気ブログランキング

モバイルバージョンを終了