読者です 読者をやめる 読者になる 読者になる

Calmery.me

みっかぼうずにならないようがんばる

Pyramidのインストール

Python で Web アプリケーションを書くことになったが Django はよくわからなかった.
そこで Pyramid を使って書いてみることにする.

Pyramid のインストール

$ pip install pyramid

ちなみにプロキシ経由でインストールする場合には

$ pip --proxy=url:port install pyramid

でプロキシを通す必要がある.

Collecting pyramid
  Downloading pyramid-1.6.1-py2.py3-none-any.whl (626kB)
    100% |████████████████████████████████| 634kB 2.0MB/s 
...
Successfully installed pyramid-1.6.1

Waitress のインストール

早速この チュートリアル に沿って動かしてみようと思ったが waitress が入っていないと怒られた.

>>> from waitress import serve
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named waitress

waitress は Index of Packages : Python Package Index でパッケージとソースコードが入手できる.
waitress-0.9.0b1-py3-none-any.whl を pip からインストールする.

$ pip install Downloads/waitress-0.9.0b1-py3-none-any.whl 
waitress-0.9.0b1-py3-none-any.whl is not a supported wheel on this platform.

文句を言われた.
仕方がないのでソースコードから入れることにする.

$ wget https://pypi.python.org/packages/source/w/waitress/waitress-0.9.0b1.tar.gz
$ tar -xf waitress-0.9.0b1.tar.gz
$ cd waitress-0.9.0b1
$ python setup.py install
...
Installed /usr/local/lib/python2.7/site-packages/waitress-0.9.0b1-py2.7.egg
Processing dependencies for waitress==0.9.0b1
Finished processing dependencies for waitress==0.9.0b1

動かしてみる

インストールが終わったのでもう一度動かしてみる.

from waitress import serve
from pyramid.config import Configurator
from pyramid.response import Response

def hello_world(request):
    return Response('Hello world!')

if __name__ == '__main__':
    config = Configurator()
    config.add_view(hello_world)
    app = config.make_wsgi_app()
    serve(app, host='0.0.0.0')

実行したところ

socket.error: [Errno 48] Address already in use

とエラーが出たので

$ sudo python HelloWorld.py
serving on http://0.0.0.0:8080

localhost:8080 で確認できる.
無事に動いた.

Ctrl + C で終了できる.

公式ドキュメント はじめての Pyramid アプリケーションを作る — The Pyramid Web Application Development Framework v1.4.3 (翻訳)Hello World は waitress を入れなくても動いた.
wsgiref が使ってあったので何かしらの WSGI を使ってねということなんだろう.