【Python】WebフレームワークのCherryPyのインストール

【Python】WebフレームワークのCherryPyのインストール プログラミング

「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.62016年12月23日2021年12月23日
3.72018年6月27日2023年6月27日
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月
3.102021年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の動作確認を説明しました。

タイトルとURLをコピーしました