チュートリアルを試してみる (2)
とりあえず python2.5 が python コマンドでナニできる環境、という事で chroot なソレを作る事に。
前職のネト環境云々な問合せ対応な日曜 2000 前だったのですが、なんとか収束。以下で chroot なソレを
# debootstrap etch /home/xxx/google http://ftp.jp.debian.org/debian/
あとは以下のおマジナイを
# echo "proc /home/xxx/jail/proc proc none 0 0" >> /etc/fstab # mount proc /home/xxx/jail/proc -t proc # cp /etc/hosts /home/xxx/jail/etc/hosts # chroot /home/xxx/jail /bin/bash /# cd /dev /dev# /sbin/MAKEDEV generic /dev# aptitude install locales mtools -fy /dev# cd / /# useradd -m guest /# passwd guest
で、python2.5 を
# apt-get install -f python2.5 (中略 t:2 http://ftp.jp.debian.org etch/main python2.4-minimal 2.4.4-3 [901kB] Get:3 http://ftp.jp.debian.org etch/main python-minimal 2.4.4-2 [12.2kB] Get:4 http://ftp.jp.debian.org etch/main libsqlite3-0 3.3.8-1.1 [194kB] Get:5 http://ftp.jp.debian.org etch/main python2.5-minimal 2.5-5 [784kB] Get:6 http://ftp.jp.debian.org etch/main python2.5 2.5-5 [3445kB] Fetched 5367kB in 6s (780kB/s) Selecting previously deselected package mime-support. (Reading database ... 7764 files and directories currently installed.) Unpacking mime-support (from .../mime-support_3.39-1_all.deb) ... Selecting previously deselected package python2.4-minimal. Unpacking python2.4-minimal (from .../python2.4-minimal_2.4.4-3_i386.deb) ... Selecting previously deselected package python-minimal. Unpacking python-minimal (from .../python-minimal_2.4.4-2_all.deb) ... Selecting previously deselected package libsqlite3-0. Unpacking libsqlite3-0 (from .../libsqlite3-0_3.3.8-1.1_i386.deb) ... Selecting previously deselected package python2.5-minimal. Unpacking python2.5-minimal (from .../python2.5-minimal_2.5-5_i386.deb) ... Selecting previously deselected package python2.5. Unpacking python2.5 (from .../python2.5_2.5-5_i386.deb) ... Setting up mime-support (3.39-1) ... Setting up python2.4-minimal (2.4.4-3) ... Linking and byte-compiling packages for runtime python2.4... Setting up python-minimal (2.4.4-2) ... Setting up libsqlite3-0 (3.3.8-1.1) ... Setting up python2.5-minimal (2.5-5) ... Linking and byte-compiling packages for runtime python2.5... Setting up python2.5 (2.5-5) ... #
で、確認。
# python -V Python 2.4.4 #
がびーん。
# dpkg --get-selections|grep python python-minimal install python2.4-minimal install python2.5 install python2.5-minimal install #
python2.4-minimal を削除してみる
# apt-get remove -f python2.4-minimal -s Reading package lists... Done Building dependency tree... Done The following packages will be REMOVED: python-minimal python2.4-minimal python2.5 python2.5-minimal 0 upgraded, 0 newly installed, 4 to remove and 0 not upgraded. Remv python2.5 [2.5-5] Remv python2.5-minimal [2.5-5] Remv python-minimal [2.4.4-2] Remv python2.4-minimal [2.4.4-3] #
削除して -f ナシで再度 pytho2.5 入れたらどうなるか。
# apt-get install python2.5 (中略 Selecting previously deselected package python2.4-minimal. (Reading database ... 7799 files and directories currently installed.) Unpacking python2.4-minimal (from .../python2.4-minimal_2.4.4-3_i386.deb) ... Selecting previously deselected package python-minimal. Unpacking python-minimal (from .../python-minimal_2.4.4-2_all.deb) ... Selecting previously deselected package python2.5-minimal. Unpacking python2.5-minimal (from .../python2.5-minimal_2.5-5_i386.deb) ... Selecting previously deselected package python2.5. Unpacking python2.5 (from .../python2.5_2.5-5_i386.deb) ... Setting up python2.4-minimal (2.4.4-3) ... Linking and byte-compiling packages for runtime python2.4... Setting up python-minimal (2.4.4-2) ... Setting up python2.5-minimal (2.5-5) ... Linking and byte-compiling packages for runtime python2.5... Setting up python2.5 (2.5-5) ... #
で、確認。
# python -V Python 2.4.4 #
とほほ。/usr/local/bin に入れるかどうするか。
上記は日曜のログ
おそらくそのまま死亡した模様。ちなみに今日は火曜日ッス。体調的にはあまり回復してないものの、とりあえず Python-2.5.2 なソースを落として作業再開。configure の help 見たナニでは PREFIX が /usr/local なんでそのままヤッテみた。
んですが、環境が plain 杉で gcc とかが入ってない。gcc だの libc6-dev だのを入れてリトライ。Makefile できた模様。で
# make sh: make: command not found #
とほほほ。make 入れてコンパイル着手。終わったみたいなので試験してみる。
# make test
test_urllib2_localnet で止まる。他のトコでも微妙に失敗している模様。面倒なのでスルーで install する事に (を
Hello, World!! にリトライ
今度は言われた通りにナニ。NHK FM の Char さんの特番を BGM に。って BGM ゴキゲンなんですが、以下なソレで動かねぇ。
$ google_appengine/dev_appserver.py helloworld/ Traceback (most recent call last): File "google_appengine/dev_appserver.py", line 50, in <module> execfile(script_path, globals()) File "/home/guest/google_appengine/google/appengine/tools/dev_appserver_main.py", line 338, in <module> sys.exit(main(sys.argv)) File "/home/guest/google_appengine/google/appengine/tools/dev_appserver_main.py", line 297, in main server = MakeRpcServer(option_dict) File "/home/guest/google_appengine/google/appengine/tools/dev_appserver_main.py", line 259, in MakeRpcServer host_override=option_dict[ARG_ADMIN_CONSOLE_HOST]) File "/home/guest/google_appengine/google/appengine/tools/appcfg.py", line 114, in __init__ self.opener = self._GetOpener() File "/home/guest/google_appengine/google/appengine/tools/appcfg.py", line 319, in _GetOpener opener.add_handler(urllib2.HTTPSHandler()) AttributeError: 'module' object has no attribute 'HTTPSHandler' $
google 先生に聞いてみたトコロ、
とのナニを発見。make ヤリ直しですか。Makefile に上記コンテンツなエントリが無さげだったので libssl-dev を入れて再度 configure を実行してみる。で、SSL 云々なエントリがあるか、と見てみると無ひ。
openssl 入れてリトライ。って configure の出力見てみると Modules ディレクトリの中に Setup ってファイルが出力されている模様。これか。(とほほ
修正して make 実行中。NHK-FM は現在 Zeppelin がウナりを上げてる状態。
make install 失敗
ええと、一旦綺麗な環境にしてから云々じゃねぇと微妙そげ。面倒なので
- /usr/local/include/pytho2.5
- /usr/local/lib/python2.5
- /usr/local/bin/python2.5*
を削除して、ソースの展開からナニ。
動いた
BGM は JeffBeck がウナってる中、Hello, world!! が出た。ここで一旦ブログ出力。
続き
helloworld.py を書き換えて reload するだけで OK な模様。
Using the webapp Framework
そろそろ中身を真面目に読まんと微妙かも。
サンプルなソースと解説から読めるのは以下
- wsgiref は Python の標準ライブラリな模様
- main メソドで wsgiref.handlers.CGIHandler().run を呼んでいる
- run に渡しているのは webapp.WSGIApplication なインスタンス
- ハンドラは webapp.RequestHandler を継承
- webapp.RequestHandler.response に戻しをセット
- main メソド中の WSGIApplication にハンドラと URL のマップをナニしてる模様
そろそろ python きちんと読めるようにしとかんと微妙かも。
Using the Users Service
google なアカウントで云々な処理が可能な模様。なるほどね。最後までざくっと流すかどうか迷い中。ちょっと tutorial ナゾるだけだと不毛なのでストップ。
体調不良なママ何かをすると駄目ですな。(とほほ