dev_appserver.pyに関するメモ

読了まで:約2分


概要: Google App Engine のdev_appsever.pyに​関する​メモ


注意

この​記事は​今日 Google App Engine のdev_appserver.pyで​大は​まりした​事に​ついて​まとめた​記事なのですが、​ とりあえず​解決した本人も​何が​悪かったのか​よく​分かってないため、​ 要領を​得ない​記事に​なってるかもしれません。

したかった​事

要するに​こういう​ディレクトリ構成でdev_appserver.pyを​動かしたかった

~/dev/{project}
# アプリケーション関連ファイルのディレクトリ
app/
{appname}/
app.yaml
script.py
...etc
# アプリケーションの実行に必要なファイルのディレクトリ
lib/
{project}/
{module}.py
__init__.py
...etc

できなかった​事

上記で​言うapp/project/script.pyで、lib/project​への​パスを​通しても、​ な​ぜかdev_appserver.py​経由では​読み込んでくれないと​いう​現象に​遭遇した。

ちなみにapp/project/script.pyを​ shell から​直接実行した​場合は​きちんと​動く

仮説

もしかすると、dev_appserver.pyは​任意の​ディレクトリからは​ライブラリを​読めない?

検証

とりあえず​上記で​言うlib/projectapp/appname/​以下に​コピーした​ところ​問題なく​動いた。

とりあえずの​解決策

lib/projectの​内容は、​複数の​ GAE Application で​共有したい、と​考えていたので、​ とりあえずapp/appname/​以下にlib/projectの​シンボリックリンクを​貼る​ことに​よって​何とか​なった。

要するに​こんな​感じ。

~/dev/{project}
app/
{appname}/
app.yaml
script.py
{project}   # これがシンボリックリンク
lib/
{project}/      # ここがシンボリックリンクのリンク先
{module}.py
__init__.py

分かってない​こと

色々と​検索してみた​ものの、​上記の​現象がdev_appserver.pyの​仕様なのか、​ バクなのか、​それとも​俺の​やり方が​悪かったのか、と​いうのは​よく​分かってません。

まあとりあえずは​シンボリックリンクで​なんとか​なったので​よしとしよう。

ちなみに

これを​解決するまでに​一時間半かかりました。

で、​とりあえず​解決は​できたので、​長い​こといってなかった​床屋へ​行き、​ サッパリして​帰ってきた​後​この​記事を​書いてます。

とりあえず​自分も​今回の​件に​ついて​よく​分かってないので、​ 断片的に​情報を​まとめてみた​次第。

た​ぶん他の​人には​分かりづらいと​思うけど、​自分用の​メモと​いう​ことで。

#FIXME

にゃるら(カラクリスタ)

『輝かしい青春』なんて失かった人。
次に備えて待機中。

今は趣味でプログラミングをして
生活しています。