Pythonの最近のブログ記事

Lepardでmod_pythonの際に自分が引っかかった点を備忘録として。

まずは参考にした記事の紹介。
Leopardでmod_python

で手順は、

mod_pythonの設定

# cd /usr/local/src/
# curl -O http://ftp.kddilabs.jp/infosystems/apache/httpd/modpython/mod_python-3.3.1.tgz
# tar zxvf mod_python-3.3.1.tgz
# cd mod_python-3.3.1
# ./configure
# cd ./src
# vi Makefile
viでMakefileを開き下記3行を追加する。
INCLUDES+= -Wc,-arch -Wc,ppc -Wc,-arch -Wc,i386 -Wc,-arch -Wc,ppc64 -Wc,-arch -Wc,x86_64
INCLUDES+= -Wl,-arch -Wl,ppc -Wl,-arch -Wl,i386 -Wl,-arch -Wl,ppc64 -Wl,-arch -Wl,x86_64
export ARCHFLAGS='-arch i386 -arch ppc -arch ppc64 -arch x86_64'
追加後のコードは以下の通り。赤字が追加箇所。
# requires flex 2.5.31 for reentrant support
LEX=/usr/bin/flex
INCLUDES=-I/Users/paraches/myTest/modPython/mod_python-3.3.1/src/include -I/usr/include/apache2 -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5
INCLUDES+= -Wc,-arch -Wc,ppc -Wc,-arch -Wc,i386 -Wc,-arch -Wc,ppc64 -Wc,-arch -Wc,x86_64
INCLUDES+= -Wl,-arch -Wl,ppc -Wl,-arch -Wl,i386 -Wl,-arch -Wl,ppc64 -Wl,-arch -Wl,x86_64
export ARCHFLAGS='-arch i386 -arch ppc -arch ppc64 -arch x86_64'
LIBS=-lm -framework Python -ldl
LDFLAGS= -Wl,-framework,Python -u _PyMac_Error -framework Python -Wl,-F.
OPT=
CFLAGS=$(OPT) $(INCLUDES)
srcdir=.
# cd ./../
# make
# make install

Apacheの設定

# vi /etc/apache2/httpd.conf
下記を追加。
LoadModule python_module libexec/apache2/mod_python.so
同様に下記を追加。

<Directory /mywebdir>
AddHandler mod_python .py
PythonHandler myscript
PythonDebug On
</Directory>
httpd.confを修正したので、apacheサーバーを再起動する。
# apachectl restart

myscriptの作成(試しに)

Python プログラムが /mywebdir/myscript.py
myscrupt.pyの内容は下記の通り。

from mod_python import apache
def handler(req):
req.content_type = "text/plain"
req.write("Hello World!")
return apache.OK

mywebdir/myscript.pyにアクセスし、Hello World!が表示されることを確認する。
(ついでにmywebdir/任意の名前.pyでアクセスすると同じ結果が出る。)

補足:
ソースコードの配布先:Apache HTTP SERVER PROJECT
http://httpd.apache.org/modules/python-download.cgi

マニュアル日本語版:mod_python マニュアル
http://www.python.jp/doc/contrib/modpython/contents.html
にこにこで「python」って検索したら、見つけた。



正方形ってw
これは楽しめた。

いや、でも休憩中にpythonって検索しちゃうところがなんともw
BeautifulSoup
読んでて特にわからなかった単語。

extract
引き出す、得る。
incoming
入来、到来。入ってくるイメージ。
specify
指定する、明記する。
external
外部の

以下、メモ書きリンク:
BeautifulSoup
http://www.crummy.com/software/BeautifulSoup/
Pydevからの実行ではしっかり動くのに、macの通常実行では動かない...なぜ?

Window XP(Python2.5)ではしっかり動く??

 あぁ...2時間ばかしはまってるorz


で作ってるのは、Tkinter使ってメール配信をGUIから。それを、py2appとpy2exeで固める。


あと、備忘録。
py2exeの実行はpython setup.py py2exe。
py2appの実行はpython setup.py py2app。
TkinterのEntryクラス使ったテキスト入力フィールドで、*表示などのパスワード表示にする方法。

下のように、showオプションを与えてあげる。

Entry(frame, show="*")


ドキュメントが少なかったから資料見つけるの大変だったorz
ギークなおねえさんが、とっても面白いサイト作ってた。

しかも詳細すぎ(笑)

geek DataBase - ギークデータベース

これはネタ。


以下、余談。
Python2.5ではSQLite3がビルドされてます。
Python2.4のレンタルサーバーではSQLiteは使えません。

なんとかPython2.5のモジュールをレンタルサーバーに移植できないかな...と思って解析してます。

代替手順として、
開発環境で、Python2.4,pysqliteモジュールを準備し、py2exe,py2appでまとめる。それを解析し必要モジュールを特定する。ってあほな手順。

...すなおにドキュメント逝ってきます。
RSSリーダーをPythonで作る必要があったので、参考にしました。


詳しくは柴田淳さんのブログを!

みんなのPython Webアプリ編 サポートWeb


JavaScriptで作りたかったのだけど、同一ドメインじゃないとダメなんだよねorz
Python2.4
レンタルサーバーのvalue domainがバージョン2.4だったため。
本当は2.5でsqlite3を使いたかったorz
あ、でも、レンタルサーバーでPython使えるのは嬉しいかも。

以下、覚えたこと。
  • 文字コードの指定。
    # -*- coding: utf-8 -*-
  • header
    Content-Type: text/html; charset=UTF-8
  • os.getcwd()
    レンタルサーバーの絶対パスをこれ使って確認。
  • sys.path
    外部モジュールの読み込みを行うために使用。実際にはこいつにappend()を使用しモジュールパスを追加した。
    これで、レンタルサーバーだろうが、外部モジュールを自由に使える。


素直にDejango使えばいいかな...いやいや。


Pydev。

Shift + cmd + fn + F11 = コンソール実行。


Mac OS10.5。

fn + F11 = 開いているウィンドウが端に寄る。
fn + F11 + shift = 開いているウィンドウがゆっくり端に寄る。

下記サイトを参照し、開発環境PCにDjangoを導入しました。
python触りたい方(つまり私)がいたらここを参考にしてはいかがでしょうか。yumなので簡単です。

一応私の開発環境をお伝え。
PC:DELL INSPIRON 1300
distribution:Fedora9


ただ、若干ながら上記のサイトで誤りがあったので訂正しておきます。
6.Django 0.96フレームワークにおいて、

yum -y install django
とあったのは誤りで、正しくは、
yum -y install Django
です。ちなみに誤った方で実行すると怒られてしまいます。(私はここではまったorz)
# yum -y install django
Loaded plugins: refresh-packagekit
Setting up Install Process
Parsing package install arguments
No package django available.
Nothing to do
まぁ、Djangoを導入しようって方なら問題ないでしょうけど、参考に。
officialサイトが一番の参考ですがorz


fedora9をノートPCに入れた。何気なくterminalを開き、

perlやpython、rubyを打った。

だが、想定通り結果が帰ってこない子がいた。

それはrubyだ!!入っていないと怒られた。。。なぜだ!!
入れるの忘れたのか。。。yumかパッケージツールで入れる必要あるの?

むしろ標準装備だろ!?


ちなみにperlのバージョンはv5.10.0。pythonは2.5.1が入っていました。
fedora9