pyramid+mongodbのプロジェクトを
公式ドキュメントの
MongoDB and Pyramid
を参考にpyramid_mongodbのscaffoldを利用して作成しようとしたらエラーが出て手間取ったのでメモっておく
ひとまずPython2で
Python仮想環境を構築してpyramid
とpyramid_mongodb
をインストールする
1
2
3
| $ pyenv virtualenv 2.7.8 pyramid-mongo-27
$ pyenv activate pyramid-mongo-27
(pyramid-mongo-27)$ pip install pyramid pyramid_mongodb
|
利用できるスカフォードにpyramid_mongodb
があると思うので
これを利用してプロジェクトを作成する
1
2
3
4
5
6
7
| (pyramid-mongo-27)$ pcreate -l
Available scaffolds:
alchemy: Pyramid SQLAlchemy project using url dispatch
pyramid_mongodb: pyramid MongoDB project
starter: Pyramid starter project
zodb: Pyramid ZODB project using traversal
(pyramid-mongo-27)$ pcreate -s pyramid_mongodb pyramid-mongo
|
setup.py
から依存パッケージをインストールして
1
2
3
4
| (pyramid-mongo-27)$ cd pyramid-mongo
(pyramid-mongo-27)$ python setup.py develop
...
Finished processing dependencies for pyramid-mongo==0.0
|
development.ini
のmongodbの接続情報を編集
development.ini1
2
3
4
5
| [app:pyramid-mongo]
...
mongodb.url = mongodb://localhost
mongodb.db_name = mydb
...
|
サーバーを実行すると
1
2
3
| (pyramid-mongo-27)$ pserve development.ini
Starting server in PID 8520.
serving on 0.0.0.0:6543 view at http://127.0.0.1:6543
|
ValueError: No such renderer factory .pt
とまあ、エラーになるわけですね…
エラーメッセージでぐぐってみると
What’s New In Pyramid 1.5
が出てきて
Pyramid no longer depends on or configures the Mako and Chameleon templating system renderers by default.
とのことで、自分でテンプレートエンジンの設定を追加してあげればよい模様
setup.py1
2
3
4
5
6
7
8
| setup(
#...
install_requires=[
'pyramid_chameleon', # new dependency
'pyramid',
#...
],
)
|
再度setup.py
を実行(もしくは直接pipでインストール)する
1
| (pyramid-mongo-27)$ python setup.py develop
|
__init__.py
にpyramid_chameleon
行を追加
__init__.py1
2
| config = Configurator(.....)
config.include('pyramid_chameleon')
|
サーバー起動して確認してOK.
1
| (pyramid-mongo-27)$ pserve development.ini
|
以上。