Python

djangoをinstallしてみようと思った。

フレームワークと戯れてみたくなった。 C:\temp\Django-0.96>setup.py install running install running build running build_py error: package directory '\django' does not exist 5秒でこけた。

eyeD3をインストールする方法

eyeD3はmp3のタグを取得するライブラリ ここからインストーラを持ってくる setup.py.inと__init__.py.inをそれぞれsetup.pyと__init__.pyに変名する python setup.py installでOK

pyodbcでunicode文字列はいけるのか?

試してみたが、ハートとかが「・」とか「?」に変わる。 返答される値はばっちりshift_jisだし。 pyodbcの問題?odbcドライバの問題? # coding: utf-8 import pyodbc import codecs conn = pyodbc.connect('DSN=oracle;uid=xxx;pwd=xxx') #conn = pyodbc.co…

文字エンコード(解決編?)

UNICODEのファイルを読み書きする場合はcodecs.openを使う必要がありそうだ。 どうやらエラーになっていたのはdecode部分ではなく、writeの部分だったようだ。 なお、codecs.openをつかった場合にリテラルをwriteするときにu''などでUNICODE変換しなかった場…

文字エンコード

Pythonの文字エンコードの操作。 unistr ← UNICODE文字列 sjistr ← shift_jis文字列 unistr.encode('shift_jis') sjistr.decode('utf-8') で相互に変換。あってるのかな? でもエラーになる # coding: utf-8 f = open('out.txt','w') fshi = open('shift_jis…

pyodbcのビルドがうまくいった(x64)

そうか。 row.hのRow_Newの定義を参照するとこうなっている。 Row* Row_New(PyObject* map_name_to_index, int cValues, PyObject** apValues); ~~~ row.cのRow_Newの定義を参照するとこうなっている Row* Row_New(PyObject* map_name_to_index, Py_ssize_t …

pyodbcのビルドがうまくいかない(x64)

前はコンパイルエラーになっていたので、x64用にキャストするように変更してビルドしようとしてもうまくいかない。 リンカで外部参照エラーが出る。 あらかじめx64用ヘッダファイルとlibファイルはpyincludeとpylibにコピーしてある。 cl *.cpp -c -I pyincl…

pyodbcのビルドもできた。

REVISIONが解決できなくてコンパイルできないので、勝手に置き換えてしまった。 その後はコンパイル可能だった。 x86の場合。 cl *.cpp -c -I c:\Python25\include link /DLL /OUT:pyodbc.pyd *.obj /LIBPATH:C:\python25\libs odbc32.lib x64のODBCのSQLテ…

JythonでJDBCでexecuteBatchする

statementにオプションも設定できる。 無理やりやってみる。 import com.ziclix.python.sql.zxJDBC as j import com.ziclix.python.sql.Fetch as f conn = j.connect("jdbc:oracle:thin:@server:1521:sid","uid","pwd","oracle.jdbc.OracleDriver") c = conn…

JythonでzxJDBCを使うとき

標準でMetaDataが全部取れなくて困る。 標準でOptionの設定が全部できなくて困る。 また、executeBatchができなくて困る。 MetaDataの取り方 これで取れる import com.ziclix.python.sql.zxJDBC as j import com.ziclix.python.sql.Fetch as f conn = j.conn…

64bitのPython拡張のビルドに成功した

なんと!! ☆ココが重要☆ x64マシンにインストールしたPython2.5(x64)からpython25.libをビルドしたいマシンにコピーする 後はこんな感じ cl example.c -c -Include c:\Python25\include link -DLL /OUT:example.pyd example.obj bufferoverflowu.lib python…

Pythonの拡張ができないならプロセス通信してしまえ

Pythonの拡張ができなくてSQLTOOLをx64実行することができないのを解決する案が思いついた。 Cで作ったプログラムをサブプロセスとしてIOをPIPEでPythonから操作してしまえば似たようなことができるではないか。 Cのテストプログラム(inout.c) #include int …

Jythonのファイル出力の文字化けについて

f = open(filename,'w+b') を使用して日本語を出力すると文字化けする。 支障が無ければ f = open(filename,'w') を使ったほうが良い。