面倒なことは自分でやらない

2010年9月 7日(火) 16:36 JST
開発環境はとにかくUSBメモリに入れてしまうようにしているので、pythonの場合はPortable Pythonを使うのが一番自然だと思います
pylonsも同じようにUSBメモリに入れてます。PythonのエディタはIDLEとかxyzzyとかemacsとかを使うことが多いですが、全然日本語資料のないpylonsなのでできたら適当に補完候補を出してくれると嬉しい。
ということで、PortablePythonについてくるPyScripterでgo-pylonsで作ったpython.exeを使うようにする必要があるのですが、PyScripterのメニューを見ても全然見当がつかなかったのですが
どれも同じことがかかれてますが、この辺りを参考に、vbsを書いてみました
</p>
<p>Dim objWShell</p>
<p>Set objWShell = CreateObject("WScript.Shell")</p>
<p>Set WshEnvironment=objWShell.Environment("VOLATILE")</p>
<p>Drive = left(WScript.ScriptFullName,2)</p>
<p>WshEnvironment.Item("PYTHONHOME")=Drive+"\pylons\mydevenv"</p>
<p>objWShell.Run Drive+"\PortablePython_1.1_py2.5.4\App\PyScripter.exe --PYTHON25 --PYTHONDLLPATH "+"'"+Drive+"\pylons\mydevenv\Scripts' %1 %2 %3 %4 %5" , 1, False</p>
<div>
Pylonsはpythonのフレームワークの一つです。日本語マニュアルみたいなのはhttp://wiki.pylonshq.com/display/pylonsja/Homeになるのかな
有名どころは他にあるのに、なんとなくコレを使ってみようと思ったのですが、pythonのフレームワークは、cakePHPとかcodeIgniterなどphpのフレームワークのようにコピーしたらOKな、「レンタルサーバー向き」では無い感じ。チュートリアルでもpaster serveとpylonsで用意してあるサーバーで動くよね。ということは書かれてるけどapacheでどうやったらいいのか?というところは不明。オススメサーバーあるみたいなのでしょうがないかな。と思いつつ。
ということで、windowsXPのxamppのapacheでhelloworldを動かしてみる
http://pylonshq.com/docs/en/1.0/gettingstarted/#installing
mydevenvとhelloworldは非公開スペースでOK
以下のpythonスクリプト(pylons.cgiファイル名適当)を公開スペースへ置く。
#!/home/protected/bin/python(ここはgo-pylonsで作ったpython.exeへのパス)
from paste.deploy import loadapp
wsgi_app = loadapp('config:mydevenv以下のhelloworld\config\deployment.ini_tmplへのパス(パス区切りは¥¥)')
import wsgiref.handlers
wsgiref.handlers.CGIHandler().run(wsgi_app)
http://wiki.pylonshq.com/display/pylonscookbook/Installing+and+running+Pylons+as+plain+CGI+on+a+webhostより
改行コードLFだけにして、一行目の区切りは¥じゃなく/、config:のところは¥¥にする。
以上
で
http://localhost/cgi-bin/pylons.cgi/で用意されてるpublicのページ
http://localhost/cgi-bin/pylons.cgi/hello/indexでhelloコントローラーindexメソッド
とりあえずこれで動いた。ということで
wxGladeを使ってwxpythonのフォームをつくり、Frameにアイコンを設定。
それをcx_Freezeで固めた時にFrameに設定したicoファイルが読み込めないことを発見。exeと同じディレクトリにicoファイルを置けばいいんですが、cx_Freezeする時に使うファイルと同じようなものを使っているので紛らわしい。間違ってicoファイルをクリックしてオカシイということになっても残念
cx_Freezeのオプションでなんとかできるのかもしれないけど判らず、、、
で、何かの拍子に見つけたのが、pythonインストールディレクトリ¥Scriptsのimg2py.batという名前のファイルを発見。
imgをpyにする?ということで調べてみたら
http://www.wxpython.org/docs/api/wx.tools.img2py-module.html(公式)
日本語は
http://d.hatena.ne.jp/Megumi221/20080819/1219128129
http://python.matrix.jp/projects/wxPython/bounds.html#img2py
以下のようにすると、
img2py shape_image.png shape_image.pyイメージからpythonコードを生成します。
こうして作成されたコードはモジュールとして利用でき、 以下のように利用できます。
1 2 import shape_image bmp = shape_image.getBitmap()bmpはビットマップオブジェクト(wxBitmap)インスタンスです。
ということらしい。早速img2pyが吐き出したファイルを使って、wxGladeの吐き出したソースを変更
いまさらですが、windowsmobile機を購入したので、携帯ではできないことをやれないかと思って、python周りを調べてみたところ、
uxpythonの情報があまりにも見つからないので、ちょっと苦労しましたが、