Macの最近のブログ記事

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
以前書いた記事の更新版。
(備忘録として/)

  • Eclipse
  • Eclipse PDT All-in-one
    =>自分PHP使いなので。
  • Eclipse Aptana Studio
    =>JavaScriptで補完したいため。
  • Eclipse Pydev
    =>Pythonプログラミングのために。
  • py2app
    =>Pythonプログラムをmacようのappにする。windowsにはpy2exe。
  • Xcode
  • Firefox ブラウザ。
  • GIMP 無料のペイントアプリだから。
  • iPhone SDK 流行に流されて。
  • Cyberduck FTPクライアント。無料だし使い勝手がよい。
  • NeoOffice MSOfficeと互換性あるし、これで全く持って十分。無料だし。
  • NeoOffice日本語化パッチ 日本語化
  • Skype 知り合いと連絡とるため。
  • Chicken of the VNC サーバをGUIで遠隔操作したいから。
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 = 開いているウィンドウがゆっくり端に寄る。

いつもやり方を忘れてしまうから自分のために。

macでファイル名が「.」から始まるファイルを編集することって結構多いじゃないじゃないですか。

terminalからvimとかemacsで編集すれば確かにいいのですが、eclipseやaquamacsで修正したい場合はどうしてもGUI上でファイルを視認せねば...

というわけで 、

terminalで以下を実行。

defaults write com.apple.finder AppleShowAllFiles TRUE

戻すには最後の引数をFALSEにする。以上、終わり!

引用元は「Mac OS X、Finderで隠しファイルを表示する方法」です。
MacBook Proが壊れたので、買い直しました。

それで、これはいるだろってアプリケーションをメモ書く。
  • Firefox ブラウザはこれっしょ。
  • GIMP 無料のペイントアプリだから。
  • Xcode
  • iPhone SDK 流行に流されて。
  • Cyberduck FTPクライアント。無料だし使い勝手がよい。
  • Eclipse
  • Eclipse PDT All-in-one 自分PHP使いなので。
  • NeoOffice MSOfficeと互換性あるし、これで全く持って十分。無料だし。
  • NeoOffice日本語化パッチ 日本語化
  • Skype 知り合いと連絡とるため。
  • Chicken of the VNC サーバをGUIで遠隔操作したいから。
ひとまずこんだけあれば事足りる。
ローカル内の開発環境をターミナルからsshで操作していたが、コマンドの力量不足が露呈。ファイアーウォールの設定が分からん><,

というわけで、
  1. いっそGUIからでいいんじゃない?
  2. どうせGUIから設定するならリモートコントロールできたらいいよね。もちろんローカルネット内で。
というわけで、VNCサーバを導入してみます。
  1. VNCサーバをインストールする。
    # yum instal vnc-server
  2. /etc/sysconfig/vncserversを修正する。
    # VNCSERVERS="2:myusername"

    VNCSERVERS="2:myusername"
    修正。myusernameはもちろんfedoraのユーザ名を。rootはお勧めできないw
  3. vncpasswdコマンドで、vncのパスワードを設定する。各々のFedoraユーザで実行する。
    $ vncpasswd
    Password:
    Verify:
  4. vncサーバを起動する。
    # service vncserver start
  5. 接続時にxtermで開く設定になっているのをgnomeに変更する。/home/username/.vnc/xstartupを修正。
    xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
    はコメントアウト。
    # xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
    さらに以下を追加。
    gnome-session &
  6. vncサーバを再起動する。
    # service vncserver restart
  7. VNCサーバの標準ラン・レベルをonにする。onにすることにより、fedora起動時にVNCサーバも起動する。
    # chkconfig vncserver on
  8. VNCクライアントで接続する。
    macなんだけど、試しに
    Chicken of the VNC

    を使う。
接続完了!!

参考:Fedora Core 5でVNCサーバを動かすには
参考:VNCサーバーのインストールと設定

Firefox3が夜中にリリースされた。評判としてはJavaScriptの処理が数倍速とのこと。

即ダウンロードを行い、使ってみる。

今まで、macbookでsafariを使っていた。safariでのGmail表示だってIE6やIE7より早い。(ハードの性能差があるかもしれないが)

今回のFirefox3は格が違いに早かった。。。
mozilla.jp
  • OS10.5
  • macportsでpython2.5.2を入れてる。標準のpythonは使わない。

Tkinterを使いたい。

tkinterを使おうと思ったらエラーがでた。

>>> import Tkinter
Traceback (most recent call last):
  File "", line 1, in 
  File "/opt/local/lib/python2.5/lib-tk/Tkinter.py", line 38, in 
    import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named _tkinter

じゃ、入れればいいんだよね。という訳で、macportsを使ってインストール。

$ sudo port install py25-tkinter
Password:
--->  Fetching tcl
--->  Attempting to fetch tcl8.5.1-src.tar.gz from http://downloads.sourceforge.net/tcl
--->  Verifying checksum(s) for tcl
--->  Extracting tcl
--->  Configuring tcl
--->  Building tcl with target all
--->  Staging tcl into destroot
--->  Installing tcl 8.5.1_0
--->  Activating tcl 8.5.1_0
--->  Cleaning tcl
--->  Fetching tk
--->  Attempting to fetch tk8.5.1-src.tar.gz from http://downloads.sourceforge.net/tcl
--->  Verifying checksum(s) for tk
--->  Extracting tk
--->  Configuring tk
--->  Building tk with target all
--->  Staging tk into destroot
--->  Installing tk 8.5.1_0
--->  Activating tk 8.5.1_0
--->  Cleaning tk
--->  Fetching py25-tkinter
--->  Verifying checksum(s) for py25-tkinter
--->  Extracting py25-tkinter
--->  Configuring py25-tkinter
--->  Building py25-tkinter with target build
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_python_py25-tkinter/work/Python-2.5.2/Modules" && /opt/local/bin/python2.5 setup.py build " returned error 1
Command output: running build
running build_ext
building '_tkinter' extension
creating build
creating build/temp.macosx-10.3-i386-2.5
-DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -DWITH_APPINIT=1 -I/opt/local/include -I/opt/local/include/python2.5 -c _tkinter.c -o build/temp.macosx-10.3-i386-2.5/_tkinter.o
unable to execute -DNDEBUG: No such file or directory
error: command '-DNDEBUG' failed with exit status 1

Error: Status 1 encountered during processing.

エラーが出ちゃった。もう一回トライ。

$ sudo port install py25-tkinter
Password:
--->  Building py25-tkinter with target build
--->  Staging py25-tkinter into destroot
--->  Installing py25-tkinter 2.5.2_0
--->  Activating py25-tkinter 2.5.2_0
--->  Cleaning py25-tkinter

うまくいった。

$ python
Python 2.5.2 (r252:60911, Mar 10 2008, 01:23:52) 
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import Tkinter
>>>

うまくTkinterがimportできた。

参考

MacPortsでステキなUNIXツールをインストール
Tkinter と py2exe
なんかいろいろ蹴躓くなぁ - py25-tkinter 編
2. Widget を配置しよう