Published on

pythonでpackageを作り管理する方法

Authors
  • avatar
    Name
    ssu
    Twitter

rubyにはbundle gem foodieするとfoodieというプロジェクトのコードの雛形が自動生成されて、開発がとても楽になります。node.jsも同様に、npm initで最低限必要なコードディレクトとコードが生成されます。

ようやくpythonにもそのようなツールが2018年頃に作られました。それが、poetryです。 poetryでは、virtualenvの管理と、パッケージの管理、コードの雛形を生成してくれます。

それでは、poetryでコードの雛形の作成方法を紹介します。

pip install poetry

でpoetryをinstallします。

次に、下記のコマンドでmy-packcageというディレクトリと雛形を生成してくれます。

poetry new my-package

雛形はこのような形になります。

my-package ├── pyproject.toml ├── README.md ├── my_package │ └── __init__.py └── tests └── __init__.py

srcフォルダにしたい場合は作成する際に下記のようにするのがおすすめです

poetry new my-package --name src

そうすると、下記のように雛形生成されます。

my-package ├── pyproject.toml ├── README.md ├── src │ └── __init__.py └── tests └── __init__.py

何かpackageをinstallする際は、pip installの代わりに

poetry add package-name

とすることで、packageをinstallすることができます。

packageを除く場合は、下記のようにremoveしてあげます。

poetry remove package-name

そして、このproject内でコマンドを利用する際は、

poetry run commnad-name

とすることで、任意のcommnadを実行することが可能です。 また、FassやPassなどで、requirements.txsを求めらる場合があります。

その場合は、下記のコマンドでrequirements.txtを生成してあげます。

poetry export -f requirements.txt --output requirements.txt --without-hashes

これで、どのプロジェクトでも利用が可能になると思います。

poetryでカスタムscriptを作り実行する方法

参考: python poetry Commands