「PythonでWebシステムを開発したい」
「高速処理が可能なWebフレームワークを探している」
このような場合には、CherryPyがオススメです。
この記事では、WebフレームワークであるCherryPyのインストールについて解説しています。
本記事の内容
- CherryPyとは?
- CherryPyのシステム要件
- CherryPyのインストール
- CherryPyの動作確認
それでは、上記に沿って解説していきます。
CherryPyとは?
CherryPyとは、Pythonicなオブジェクト指向のWebフレームワークです。
PythonのWebフレームワークは、他には次のモノがあります。
- Django
- bottle
- Flask
- Plone
- Tornado
これらと同じようなモノだと言えば、CherryPyを理解しやすいかもしれません。
特筆すべきCherryPyの特徴は、軽量で高速であることが挙げられます。
また、CherryPyは歴史のあるWebフレームワークと言えます。
そのため、安定した動作が人気です。
小規模な開発から複雑な開発まで、CherryPyは利用されています。
その意味でも、CherryPyは覚えておいて損はしないWebフレームワークです。
以上、CherryPyについて説明しました。
次は、CherryPyのシステム要件を説明します。
CherryPyのシステム要件
現時点(2022年8月)でのCherryPyの最新バージョンは、18.8.0となります。
この最新バージョンは、2022年7月18日にリリースされています。
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
サポート対象となるPythonのバージョンは、Python 3.6以降になります。
以下は、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公式開発サイクルに従うなら、Python 3.7以降を利用しましょう。
以上、CherryPyのシステム要件を説明しました。
次は、CherryPyのインストールを説明します。
CherryPyのインストール
検証は、次のバージョンのPythonで行います。
$ python -V Python 3.10.2
まずは、現状のインストール済みパッケージを確認しておきます。
$ pip list Package Version ---------- ------- pip 22.2.1 setuptools 63.3.0 wheel 0.36.2
次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip setuptools
では、CherryPyのインストールです。
CherryPyのインストールは、以下のコマンドとなります。
pip install CherryPy
CherryPyのインストールには、少し時間がかかります。
終了したら、どんなパッケージがインストールされたのかを確認します。
$ pip list Package Version ------------------ ------- cheroot 8.6.0 CherryPy 18.8.0 jaraco.classes 3.2.2 jaraco.collections 3.5.2 jaraco.context 4.1.2 jaraco.functools 3.5.1 jaraco.text 3.8.1 more-itertools 8.13.0 pip 22.2.1 portend 3.1.0 pytz 2022.1 setuptools 63.3.0 six 1.16.0 tempora 5.0.2 wheel 0.36.2 zc.lockfile 2.0
CherryPyが、依存しているパッケージを確認できます。
依存パッケージの数は決して少なくはありません。
パッケージが多いと、何かとトラブルの元ではあります。
そのため、可能であれば、Python仮想環境にCherryPyをインストールしましょう。
以上、CherryPyのインストールを説明しました。
次は、CherryPyの動作確認を説明します。
CherryPyの動作確認
CherryPyの動作確認を行います。
以下は、公式に掲載されているサンプルコードです。
基本中の基本である「Hello World」になります。
import cherrypy class HelloWorld(object): @cherrypy.expose def index(self): return "Hello World!" cherrypy.quickstart(HelloWorld())
上記コードを実行すると、次のように表示されます。
(※日時は邪魔であるため、カットしています)
ENGINE Listening for SIGTERM. ENGINE Listening for SIGHUP. ENGINE Listening for SIGUSR1. ENGINE Bus STARTING CherryPy Checker: The Application mounted at '' has an empty config. ENGINE Started monitor thread 'Autoreloader'. ENGINE Serving on http://127.0.0.1:8080 ENGINE Bus STARTED
CherryPyは、デフォルトでポート8080において起動します。
そのため、「http://127.0.0.1:8080」にブラウザでアクセスすることになります。
アクセスすると、次のような画面を確認できます。
CherryPyを別マシンにインストールしているなら、「127.0.0.1」をサーバーのIPアドレスに変更します。
サーバーのIPアドレスの確認方法は、次の記事で解説しています。
なお、上記コード実行時に次のようなエラーが出る場合があります。
〜省略〜 ENGINE Error in 'start' listener <bound method Server.start of <cherrypy._cpserver.Server object at 0x7fbfa703a9e0>> 〜省略〜 cherrypy.process.wspbus.ChannelFailures: Timeout('Port 8080 not free on 127.0.0.1.') ENGINE Bus STOPPING ENGINE HTTP Server cherrypy._cpwsgi_server.CPWSGIServer(('127.0.0.1', 8080)) already shut down ENGINE Stopped thread 'Autoreloader'. ENGINE Bus STOPPED ENGINE Bus EXITING ENGINE Bus EXITED
これは、ポート8080が利用できないというエラーです。
このような場合には、ポートを変更しましょう。
quickstart関数の前に設定変更を行います。
cherrypy.config.update({'server.socket_port': 9090}) cherrypy.quickstart(HelloWorld())
上記コードにより、CherryPyがポート9090で起動することになります。
以上、CherryPyの動作確認を説明しました。