「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の動作確認を説明しました。