PythonライブラリノックDay108 外部ライブラリ #プログラミング #python #library

テクノロジー



Pythonのライブラリの紹介です。それぞれの説明と使用例は以下になります。

L 322. waitress(Webサーバ)
waitressは、WSGI準拠のシンプルで安定したPython製Webサーバーです。主に FlaskやPyramidなどのWSGIアプリケーションを本番環境で運用するために使われます。Windowsでも動作し、スレッドベースのサーバーです。

▼主な機能
WSGIアプリを本番環境で実行可能
マルチスレッド対応
クロスプラットフォーム(Windows含む)
設定がシンプル

▼インストール
pip install waitress

▼使い方(Flaskの例)
from flask import Flask
from waitress import serve

app = Flask(__name__)

@app.route(‘/’)
def hello():
return “Hello from Waitress!”

# Waitressで起動
serve(app, host=’0.0.0.0′, port=8080)

L 323. eventlet(疑似並列)
eventletは、グリーンスレッド(疑似並列)の仕組みを提供する非同期I/Oライブラリで、WebSocketやWsgiサーバー、ネットワークアプリケーションなどで利用されます。軽量で同時接続に強く、Flask-SocketIOのバックエンドとしても有名です。

▼主な機能
グリーンスレッドによる並行処理(green threads)
monkey patching により標準ライブラリを非同期化
非同期ネットワーク通信(socket、http、sslなど)
WSGIサーバーとしての利用も可

▼インストール
pip install eventlet

▼使い方(簡単なWsgiサーバー例)
import eventlet
from eventlet import wsgi

def app(env, start_response):
start_response(‘200 OK’, [(‘Content-Type’, ‘text/plain’)])
return [b’Hello from Eventlet!’]

wsgi.server(eventlet.listen((‘0.0.0.0′, 8080)), app)

▼Flask-SocketIOでの利用例
from flask import Flask
from flask_socketio import SocketIO

app = Flask(__name__)
socketio = SocketIO(app, async_mode=’eventlet’)

@app.route(‘/’)
def index():
return ‘SocketIO with Eventlet’

if __name__ == ‘__main__’:
socketio.run(app, host=’0.0.0.0′, port=8080)

L 324. gevent(非同期ネットワークライブラリ)
geventは、グリーンスレッドを使った非同期ネットワークライブラリです。libev/libuvベースの高速なイベントループを使っていて、非常に高性能です。

▼主な機能
協調的マルチタスク(greenlet)
monkey patch による標準ライブラリの非同期化
非同期ソケット通信、HTTPサーバー、プロセス管理など
WSGIアプリケーションも実行可能

▼インストール
pip install gevent

▼使い方(WSGIサーバーとして)
from gevent.pywsgi import WSGIServer
from flask import Flask

app = Flask(__name__)

@app.route(‘/’)
def hello():
return “Hello from Gevent!”

http_server = WSGIServer((‘0.0.0.0’, 8080), app)
http_server.serve_forever()

Comments

Copied title and URL