Pyramid 1.5 で、Jinja2 をやっていたが、なにやらテンプレートが見つからない、などというエラーが時々でてしまう。
Mac じゃ動いているのに、Raspberry Pi ではテンプレートが見つからないとか。
いろいろやってみて見つけたのが「jinja2-alchemy-starter」。
これは「Pyramid Scaffold for getting started with SQLAlchemy ORM and Jinja2 Templating Engine」というもの。
さしあたって、Pyramid 1.5 に Jinja2 で良いのだけれど、現実のお仕事は SQLAlchemy も使うので、これは便利じゃないのか、と早速試してみる。
これはその記録。
env_jinja2 という環境を virtualenv でつくって、そこでプロジェクト MyProject を作成する。
Mac じゃ動いているのに、Raspberry Pi ではテンプレートが見つからないとか。
いろいろやってみて見つけたのが「jinja2-alchemy-starter」。
これは「Pyramid Scaffold for getting started with SQLAlchemy ORM and Jinja2 Templating Engine」というもの。
さしあたって、Pyramid 1.5 に Jinja2 で良いのだけれど、現実のお仕事は SQLAlchemy も使うので、これは便利じゃないのか、と早速試してみる。
これはその記録。
env_jinja2 という環境を virtualenv でつくって、そこでプロジェクト MyProject を作成する。
$ virtualenv --no-site-packages env_jinja2 $ cd env_jinja2/ $ bin/pip install pyramid $ bin/pip install jinja2_alchemy_starter $ bin/pcreate -s jinja2_alchemy_starter MyProject
これでプロジェクト MyProject ができた。
ついでに、eclipse で作業できるようにしてしまう。
eclipse を起動して、workspace を env_jinja2 にする。
起動したら、環境設定を修正する。PyDev がインストールされている eclipse であることを前提にしてますから、インストールしていない方は、インストールしておいてください。
- General -> Editors -> Text Editors の Insert spaces for tabs にチェックを入れる。tab コードの代わりにスペースを使う。(tab コードがお好きな方はそのままで)
- General -> Startup and Shutdown で、RSE UI のチェックを外す。これは、意味不明の「RemoteSystemsTempFiles」を eclipse が勝手に作成するのをやめさせるため。
- General -> Workspace の Text file encoding を UTF-8 にする。(他の encoding が必要な場合は、それを設定してください)
- Remote Systems の Re-open Remote Sysmtes ... のチェックを外す。これも、意味不明の「RemoteSystemsTempFiles」を eclipse が勝手に作成するのをやめさせるため。
- PyDev -> Interpreters -> Python Interpreter で、自分の環境の Python にする。(env_jinja2/bin/python です)
- 続いて表示される PYTHONPATH の設定は、めんどうなので、すべてチェックを入れておく。(きちんと管理したい方はそのように)
- PyDev -> Interpreters -> Python Interpreter の String Substitution Variablesに名前が「run_pyramid」で、値が自分の環境にあるbin/pserveを追加する。
次に、先ほど作成した MyProject を eclipse のプロジェクトにしたいので、その名前で新たに Project を作成します。
Project name は MyProject にします。
つくるときに、Interpreter を先ほど設定した Python Interpreter にします。
eclipse の PyDev Package Explorer に MyProject が表示されるので、その中から development.ini を見つけて編集状態にします。
このままでは、MySQL とつながりにいってしまうので、その前に sqlite を使うようにします。
<修正前>
#SQlalchemy configuration (The prefix `sqlalchemy.` can be changed IF you change it in __init__.py's engine_from_config() call too sqlalchemy.url=mysql+mysqldb://root:root123@localhost/test sqlalchemy.pool_recycle = 3600 sqlalchemy.pool_size = 20<修正後>
#SQlalchemy configuration (The prefix `sqlalchemy.` can be changed IF you change it in __init__.py's engine_from_config() call too # sqlalchemy.url=mysql+mysqldb://root:root123@localhost/test # sqlalchemy.pool_recycle = 3600 # sqlalchemy.pool_size = 20 sqlalchemy.url = sqlite:///%(here)s/MyProject.sqlite
$ cd MyProject/ $ ../bin/python setup.py develop $ ../bin/pserve development.ini
「ImportError: No module named MySQLdb」って、言われたときは、先ほどの development.ini の修正を確認してください。
このままではなんだかわからないので、テンプレートを使って、ページ遷移もしてみます。
__init__.py を見ると「config.add_view」を使っているので、この辺りも修正します。
0 件のコメント:
コメントを投稿