「Pythonで簡単にコマンドラインツールを作成したい」
このような場合には、Clickがオススメです。
この記事では、Clickについて解説しています。
本記事の内容
- Clickとは?
- Clickのシステム要件
- Clickのインストール
- Clickの動作確認
それでは、上記に沿って解説していきます。
Clickとは?
Clickとは、コマンドラインツールを作成するためのPythonライブラリです。
Clickを使えば、Pythonで簡単にコマンドラインツールを作成できます。
どれくらい簡単かと言うと、以下のコマンドを書くだけのレベルです。
このコードだけで、次のような入力を待つ動きを実現できています。
(※わかりにくいですが、実際に実行したらわかります)
Your name:
この場合、値を入力するまで処理は実行されません。
何気ない処理ですが、たったこれだけのコードで実現可能です。
あと、次のようなヘルプ画面を自動的に作成してくれます。
Usage: hello.py [OPTIONS] Simple program that greets NAME for a total of COUNT times. Options: --count INTEGER Number of greetings. --name TEXT The person to greet. --help Show this message and exit.
地味ですが、これは便利です。
すぐにその場でヘルプを確認できるのは、効率UPとなります。
また、ヘルプの自動作成はコード上にコメントを残すモチベーションにもなります。
コメントがヘルプで表示されることになりますからね。
そうなると、今まで以上にちゃんとコメントを残そうと思いませんか?
私の場合は、少なくともそのようになります。
以上、Clickについて説明しました。
次は、Clickのシステム要件を説明します。
Clickのシステム要件
現時点(2022年8月)でのClickの最新バージョンは、8.1.3となります。
この最新バージョンは、2022年4月29日にリリースされています。
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
サポート対象となるPythonのバージョンは、Python 3.7以降です。
つまり、以下のPython公式開発サイクルに準じていることになります。
バージョン | リリース日 | サポート期限 |
3.6 | 2016年12月23日 | 2021年12月23日 |
3.7 | 2018年6月27日 | 2023年6月27日 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
3.10 | 2021年10月4日 | 2026年10月 |
Python 3.6は、2021年末でサポート期限が切れていることに注意しましょう。
まとめると、Clickのシステム要件はPython 3.7以降ぐらいです。
以上、Clickのシステム要件を説明しました。
次は、Clickのインストールを説明します。
Clickのインストール
検証は、次のバージョンのPythonで行います。
$ python -V Python 3.10.2
まずは、現状のインストール済みパッケージを確認しておきます。
$ pip list Package Version ---------- ------- pip 22.2.2 setuptools 63.4.2 wheel 0.36.2
次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip setuptools
では、Clickのインストールです。
Clickのインストールは、以下のコマンドとなります。
pip install click
Clickのインストールは、一瞬で終わります。
終了したら、どんなパッケージがインストールされたのかを確認します。
$ pip list Package Version ---------- ------- click 8.1.3 pip 22.2.2 setuptools 63.4.2 wheel 0.36.2
Clickが依存するパッケージは、ありません。
そのため、Clickは既存環境へ簡単に導入可能です。
以上、Clickのインストールを説明しました。
次は、Clickの動作確認を説明します。
Clickの動作確認
Clickの動作確認を行います。
動作確認に用いるコードは、以下。
import click @click.command() @click.option("--count", default=1, help="挨拶の回数") @click.option("--name", prompt="名前を入力してください", help="挨拶する相手") def hello(count, name): """NAMEに合計COUNT回挨拶するシンプルなプログラム。""" for _ in range(count): click.echo(f"こんにちは, {name}!") if __name__ == '__main__': hello()
まずは、ヘルプから見てみましょう。
$ python test.py --help Usage: test.py [OPTIONS] NAMEに合計COUNT回挨拶するシンプルなプログラム。 Options: --count INTEGER 挨拶の回数 --name TEXT 挨拶する相手 --help Show this message and exit.
日本語の表示は、問題ありませんね。
次は、入力を求めるケースを試してみます。
$ python test.py --count 3
上記を実行すると、promptに指定したメッセージが表示されます。
名前を入力してください:
適当に値を入力した結果は、以下。
$ python test.py --count 3 名前を入力してください: テスト太郎 こんにちは, テスト太郎! こんにちは, テスト太郎! こんにちは, テスト太郎!
入力不要の場合は、次のように実行します。
$ python test.py --count 2 --name 入力不要マン こんにちは, 入力不要マン! こんにちは, 入力不要マン!
確かに、PythonでCLIツールを簡単に作成できていますね。
他にも、まだまだ楽しそうな機能がClickには用意されています。
詳細は、次のページで確認できます。
Click公式ドキュメント
https://click.palletsprojects.com/
以上、Clickの動作確認を説明しました。