【Python】非同期WebフレームワークTornadoのインストール

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

「非同期処理に対応したPython Webフレームワークを探している」
「大量アクセスに対応できるWebアプリを作りたい」
「PythonのWebアプリケーションを開発したい」

このような場合には、Tornadoがオススメです。
この記事では、Tornadoについて解説しています。

本記事の内容

  • Tornadoとは?
  • Tornadoのシステム要件
  • Tornadoのインストール
  • Tornadoの動作確認

それでは、上記に沿って解説していきます。

Tornadoとは?

Tornadoは、PythonのWebフレームワークです。
もともとは、非同期ネットワーキング・ライブラリとして開発されました。

技術的には、ノンブロッキングネットワーク I/Oを使用しています。
そのことにより、何万ものオープンコネクションに拡張することが可能となっています。

簡単に言うと、非同期処理で多くのアクセスを処理できるということです。

また、Tornadoは他のPython Webフレームワークと大きく異なる部分があります。
それは、WSGIをベースにしていないという点です。

Tornadoは、通常、プロセスごとに 1 つのスレッドのみで実行されます。
このあたりを説明すると、かなりの長編になります。

とにかく、TornadoはWSGIではなくスレッドベースで動くと覚えておきましょう。
したがって、Tornadoを動かすのにApacheなどのWebサーバーは必須ではありません。

PythonだけでWebアプリケーションを公開できるということになります。

以上、Tornadoについて説明しました。
次は、Tornadoのシステム要件を説明します。

Tornadoのシステム要件

現時点(2022年7月)でのTornadoの最新バージョンは、6.2となります。
この最新バージョンは、2022年7月4日にリリースされています。

サポートOSに関しては、公式には以下に対応しています。

  • macOS
  • Linux

ただ、Windowsでも動くことは動きます。
しかし、Windowsでの実稼働は推奨されていません。

実際、実稼働となるとLinuxがOSに採用されるはずです。
そのため、Windowsはあくまで開発環境で利用するぐらいにしておきましょう。

サポート対象となるPythonのバージョンは、以下となっています。

  • Python 3.7
  • Python 3.8
  • Python 3.9
  • Python 3.10

これは、素晴らしいサポート状況と言えます。
以下の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 3.6は、2021年末でサポート期限が切れているので要注意です。
Python 3.7以降であれば、基本的にはどんな環境でも問題ないでしょう。

以上、Tornadoのシステム要件を説明しました。
次は、Tornadoのインストールを説明します。

Tornadoのインストール

検証は、次のバージョンのPythonで行います。

> python -V
Python 3.10.4

まずは、現状のインストール済みパッケージを確認しておきます。

> pip list
Package    Version
---------- -------
pip        22.1.2
setuptools 63.1.0
wheel      0.36.2

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、Tornadoのインストールです。
Tornadoのインストールは、以下のコマンドとなります。

pip install tornado

Tornadoのインストールは、すぐに終わります。
終了したら、どんなパッケージがインストールされたのかを確認します。

> pip list 
Package    Version
---------- -------
pip        22.1.2
setuptools 63.1.0
tornado    6.2
wheel      0.36.2

依存するパッケージは、ありません。
その意味では、既存環境へ容易にTornadoを導入できそうです。

以上、Tornadoのインストールを説明しました。
次は、Tornadoの動作確認を説明します。

Tornadoの動作確認

Tornadoの動作確認を行います。
動作確認で用いるのは、次のコードです。

import asyncio
import tornado.web


class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")


def make_app():
    return tornado.web.Application([
        (r"/", MainHandler),
    ])


async def main():
    app = make_app()
    app.listen(8888)
    await asyncio.Event().wait()


if __name__ == "__main__":
    asyncio.run(main())

上記を実行すると、処理中のままになります。
そのままの状態でブラウザを開きます。

そして、次のURLへアクセス。

 http://localhost:8888/

サーバーにTornadoをインストールしているなら、localhostをそのサーバーIPアドレスに変更します。
IPアドレスの調べ方は、次の記事を参考にしてください。

あと、ファイアウォールを使用しているなら、ポートを開放する必要があります。
今回は、ポート8888を利用するコードとなっています。

無事にアクセスできれば、次のような画面が表示されます。

ここまで確認できれば、Tornadoの動作に問題はありません。

以上、Tornadoの動作確認を説明しました。

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