pythonの配布可能なpackageの作り方(setuptoolsを使ってhelloコマンドを作ろう)

珍しく技術ネタです。
今日はpythonでsetuptoolsを用いて、配布可能なpackageを作りたいと思います。

やりたいこと

  • ”Hello, world!”と標準出力に表示するhelloというコマンドを作る。
  • 上記を、setuptoolsを用いてPythonの配布可能なpackageで実現する。

環境

構成

root/
 ├ hello/
 │ ├ __init__.py
 │ └ hello.py
 └ setup.py

コード



説明

説明するほどでもないですが、setup.pyの内容について少し付け加えます。
packagesについては、hello.pyのあるpackageであるhelloのみをpackageとして登録しています。
複雑になっていく場合はsetuptoolsのfind_packages()を使ったほうが楽に済ませられます。(参照:Building and Distributing Packages with Setuptools — setuptools 35.0.0 documentation
entry_pointsについては、command名helloをhello package内にあるhello.pyのhello functionと関連付けることで?、commandとしてhelloが実行可能になります。

動かしてみる

packageのbuild&install

> python3 setup.py install
> hello
Hello, world!

packageのbuildのみ

> python3 setup.py sdist
> ls dist
hello-0.0.1.tar.gz

最後に

以上で、helloコマンドが実現可能になりました。
次回はもうpypiにpackageを登録するところをやってみたいと思います。