multiprocessingモジュールによる簡単分散処理 [Python]
参考にしたのはこちら。
なんだか、簡単で拍子抜け。
現在会社で作ってるCOBOLソースの解析ツールの実行がシーケンシャル処理なので、これを使って複数のファイルを分散で解析させて、処理を早くさせようという魂胆。
これも見越して、COBOL解析処理もPythonで書きつつ、20日にCore i7のマシンが届くので、同時に8プロセス立てて実行できるかも。
いい時代になったもんですね~
以下、子プロセスを3つ立てて、それぞれにQueueを使ってメッセージをPUTするサンプル。
# -*- coding:utf-8 -*- import os import os.path import time from multiprocessing import Pool,Process,Queue # 子プロセスとして実行される処理 def Child(q,sThreadName): while True: # キューからメッセージを取得 msg = q.get() # 画面に出力 print ("%s:%s" % (sThreadName,str(msg[0]))) # メッセージが"quit"ならプロセス終了 if msg[0] == "quit" : break # デバッグ用スリープ time.sleep(1) if __name__ == "__main__": # 子プロセスとキューを管理する配列 procs = [] # 子プロセスとキューを作成し、管理配列に追加する for i in range(3) : n = "Process_%02d" % i q = Queue() p = Process(target=Child,args=(q,n)) p.start() procs.append( (p,q,n) ); # 子プロセス(3つ)に対してメッセージをPUTする for pinfo in procs : q = pinfo[1] for x in range(10) : q.put([x,]) # 最後に終了メッセージをPUT q.put(["quit",]) # 子プロセスが終了するまで待機する print("waiting") for pinfo in procs : p = pinfo[0] p.join()
Python 3.0をMacOSXにインスコ [Python]
こちらを参考にした。
ただ、readline のパッチ12番目がうまくあたらなかったので調べたところ、カレントディレクトリを変更すれば良いとのこと。
cd support
patch < readline52_012
とすればパッチを当てられた。
インストール完了後、動作確認のためpythonとコマンドしてみても、以前の2.X系が起動する。はて?と調べたら、python3.0というコマンドになってたのね…w
Python 3.0 (r30:67503, Jan 12 2009, 08:18:27)
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
素敵。
あれをやってみた。
>>> 値 = 1
>>> print( "%03d" % 値)
001
>>>
素敵。
Jythonプログラミング [Python]
MacOSX + Eclipse + PyDev [Python]
MacにEclipse 3.3.1 を導入。
ついでにPyDevも。
PyDevはUpdateマネージャから導入。
導入後、Pythonのパスを指定する設定が必要なんだけど、これを探すのに手間取った。
結局以下のパスを指定すれば良かった。
/System/Library/Frameworks/Python.framework/Versions/2.5/Resources/Python
調子にのって、Jythonも導入
MacOSX + MySQL + Pythonメモ [Python]
ひさびさにメモ
MacOSX + MySQL という環境で、Pythonからアクセスするには
1.SourceForgeにて、MySQL-Pythonをダウンロードする
http://sourceforge.net/projects/mysql-python/
2.モジュールをダウンロード後に解凍
3.解凍ディレクトリにて、
python setup.py build
python setup.py install
4.あとはなぜかおまじない
sudo mkdir /usr/local/mysql/lib/mysql/
sudo ln -s /usr/local/mysql/lib/libmysqlclient_r.15.dylib /usr/local/mysql/lib/mysql/
5.動作確認
Python1コマンドプロンプトで、モジュールインポートしてみて、エラーが出なければオK
import MySQLdb
ご参考
http://paison.hp.infoseek.co.jp/paison/database/r.html