Python Tornado をさわってみた。その1(環境構築)
nodejsを利用する場面が多かったのですが、最近Pythonに関わる場面も増えてきました。
Djangoやpyramidを少しかじったくらいの私ですが、nodejsっぽいPythonのフレームワークはないかと探していましたが、Tornadoが近そうなのでこちらをさわってみたいと思います。
Pythonをインストールするところから始めたいと思います。
環境
Macで動作確認をしています。 homebrewとgitは事前にインストールしておいてください。Windows環境の場合はgitのみで大丈夫です。
- macOS Sierra 10.12.2
- homebrew
- git
pyenvを使ってみる
Pythonの複数バージョンをインストールする場合に利用します。Windowsを利用している方は読み飛ばしてください。
インストール
homebrewでインストールします。
$ brew install pyenv
インストール後、環境変数を設定します。~/.bash_profileに書き込みます。
export PYENV_ROOT=$HOME/.pyenv export PATH=$PYENV_ROOT/bin:$PATH
pythonのインストール
Pythonをインストールします。バージョンは任意です。
$ pyenv install 3.6.0 $ pyenv install 2.7.13
上記のコマンドを実行するとそれぞれのバージョンのpythonがインストールされます。
pyenv global x.x.x、pyenv local x.x.xまたは、pyenv shell x.x.xでバージョンの切り替えができます。
globalとすると全体に、localにするとそのカレントディレクトリに、shellにすると今使用しているシェルのpythonのバージョンを変更できます。
pyvenvで環境構築してみる
pyvenvを用いてpythonの実行環境を構築します。
pyvenvはPython3.3から標準で含まれています。ちなみにpyenvを利用した環境でpyvenvを実行すると
WARNING: the pyenv script is deprecated in favour of `python3.6 -m venv`
と表示される。pyvenvはいずれ廃止予定らしいです。
Python's pyvenv script deprecated · Issue #184 · yyuu/pyenv-virtualenv · GitHub
ので、「python3.6 -m venv」を実行してPythonの仮想環境を作成します。
作成したのち、venvを有効化します。
有効化したvenv内でpipで取得したパッケージが取得されます。
$ cd ~ $ mkdir .virtualenvs $ python3.6 -m venv .virtualenvs/tornado $ source .virtualenvs/tornado/bin/activate
venvを無効化する場合は、「deactivate」を実行します。
$ deactivate
Tornadoのインストールしてみる
Tornadoはpipを用いてインストールします。
pipはPython 2.7.9 以降、Python 3.4以降からデフォルトでインストールされます。
$ pip install tornado
公式サイトのドキュメントは下記のリンクです。
Tornado Web Server — Tornado 4.4.2 documentation
こちらに一通りの説明は記載されています。
ソースコード
公式ホームページに記載されているコードは下記の通りです。
実行すると「Hello, world」がブラウザに表示されます。
import tornado.ioloop import tornado.web class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, world") def make_app(): return tornado.web.Application([ (r"/", MainHandler), ]) if __name__ == "__main__": app = make_app() app.listen(8888) tornado.ioloop.IOLoop.current().start()
上記のソースコードをserver.pyに保存します。
$ cd ~/.virtualenvs/tornado $ mkdir workspace $ vi server.py
起動
server.pyをpythonで実行するだけです。
$ python server.py
ターミナルには何も表示されませんが、ブラウザで「http://localhost:8888」にアクセスすれば、"Hello, world"が表示されます。
次回は
今回は環境構築とTornadoのインストールのみでした。
tornado.web.RequestHandlerを説明したいと思います。REST APIの実装をしたいと思います。