Open2

poetryの使い方

i-hrmi-hrm

poetry入門

pyenvを入れる

  • ggる

簡単なコマンド

poetry init
cat requirements.txt | xargs poetry add
poetry add <package>
poetry add <dev-package> --dev
poetry show
poetry shell
poetry run <cmd>
poetry run python <file-name>

poetry newは更地からpythonを書き始めるくらいにしか使わない

pyproject.toml

pythonのversionについては気をつけて設定する -> 参考サイト

特にpythonの運用においてminor versionは固定しがちなので、そのへんを気をつける

No -> ^3.8
Ok -> ~3.8

これで3.8系で固定できる

仮想環境内のpipを上げる

poetry run pip install --upgrade pip

poetryを用いたglobal install

poetryは仮想環境を作成してそこに対してpython packageをinstallする
そのため実行の際は poetry run <cmd> となる

ただ時にはpip moduleをシステムに対してインストールしたい時がある
その際はvenvを無効にしてinstallを実行する

poetry config virtualenvs.create false
poetry install

その他

poetry.lockはgitignoreするものらしい(official doc曰く)

naohiro2gnaohiro2g

https://python-poetry.org/docs/basic-usage/#committing-your-poetrylock-file-to-version-control

公式ドキュメントでは、アプリ開発ならコミットすべき、ライブラリ開発ならコミットしても無駄かも、ということを言っています。poetryはライブラリ開発がデフォルトという意識が強いので、コミットしない(=gitignoreする)ほうが良い、という雰囲気が全般的に漂っているかもしれません。

なぜ無駄かというと、poetry.lockは環境を正確に再現するためのものですが、ライブラリの場合には、そのライブラリが組み込まれるユーザーの環境はコントロールできないからです。

私見ですが、アプリならコミットしたほうが良い。ライブラリでも、デモプロジェクトとしての意味合いからコミットしておいたほうが良いのでは、と思います。つまり、gitigonoreしない方が良い。