Personal tools
You are here: Home Lights on Zope Categories PostgreSQL
« May 2012 »
Su Mo Tu We Th Fr Sa
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
Recent entries
評価経済社会 ぼくらは世界の変わり目に立ち会っている 岡田 斗司夫 (著) seko 2012-05-13
史上最強の哲学入門 東洋の哲人たち 飲茶 (著) seko 2012-05-12
史上最強の哲学入門 飲茶 (著) seko 2012-05-12
製造業が日本を滅ぼす 野口 悠紀雄 (著) seko 2012-05-10
サニーサイドエッグ 荻原 浩【著】 seko 2012-05-03
強運の持ち主 瀬尾 まいこ【著】 seko 2012-05-03
カラーひよことコーヒー豆 小川 洋子【著】 seko 2012-05-03
「長生き」が地球を滅ぼす―現代人の時間とエネルギー 本川 達雄【著】 seko 2012-05-02
日本全国津々うりゃうりゃ [単行本] 宮田 珠己 (著) seko 2012-05-02
遺伝子はダメなあなたを愛してる [単行本] 福岡伸一 (著) seko 2012-05-02
哲学的な何か、あと数学とか 飲茶【著】 seko 2012-05-01
哲学的な何か、あと科学とか 飲茶【著】 seko 2012-05-01
宇宙に外側はあるか 松原 隆彦【著】 seko 2012-05-01
世渡り 万(よろづ)の智慧袋―江戸のビジネス書が教える仕事の基本 田中 優子【著】 seko 2012-04-29
Recent comments
Re:フェルデンクライスメソッド112回目 おててニギニギ3 seko 2012-04-07
Re:フェルデンクライスメソッド112回目 おててニギニギ3 Papasan 2012-04-07
Re:ブッダのいる女子会 Reiko 2012-03-25
おしらせと追加 やぶい 2012-03-23
Re:上島珈琲閉店 えくぼの姉さんにもう会えない Papasan 2012-03-22
Re:上島珈琲閉店 えくぼの姉さんにもう会えない seko 2012-03-22
Re:上島珈琲閉店 えくぼの姉さんにもう会えない Papasan 2012-03-21
Re:上島珈琲閉店 えくぼの姉さんにもう会えない seko 2012-03-21
Re:上島珈琲閉店 えくぼの姉さんにもう会えない Papasan 2012-03-20
Re:荒俣 宏 (著) 「歌枕」謎ときの旅 通りすがり 2012-02-11
Re:http://papasan.mydns.jp/ の飛び先がマシンによって異なる seko 2012-02-11
Re:http://papasan.mydns.jp/ の飛び先がマシンによって異なる Papasan 2012-02-10
Re:フェルデンクライスメソッド 107回目 アスリートの脚になる seko 2012-01-29
Re:フェルデンクライスメソッド 107回目 アスリートの脚になる Reiko 2012-01-29
Recent trackbacks
ぼくはお金を使わずに生きることにした 紹介 感想 わかめになりたい 2011-12-02
au の HTC EVO がなかなか良かった話 tdtshのブログ 2011-05-25
逆転経済の反響 世界一のバイヤーになってみろ!!坂口孝則の本棚と雑文 2010-12-27
Who Moved My Cheese? 大学生の気ままな書評 おすすめ和書・洋書! 2010-10-30
sekoさんちからPOSTがあったけど・・・ PapaBlog 2010-09-12
Squid(キャッシュサーバーモード)を試してみる PapaBlog 2010-08-25
Apache 2.2のキャッシュ機能を使ってみる PapaBlog 2010-08-08
愛と資本主義 中村うさぎ ばみの乱読日記 と猫雑貨。 2010-08-07
自転車用鞄(かばん)通販 鞄専門【かばん通販】 2010-06-09
Flowplayerがバージョンアップしてスッキリしていた PapaBlog 2010-06-06
荻原規子 「レッドデータガール はじめてのお化粧」 ゼロから 2010-06-01
加納朋子「モノレールねこ」 ご本といえばblog 2010-04-29
武蔵境でWiMAX電波を追ってみる においの事件簿 2010-04-19
荻原規子 「レッドデータガール はじめてのお使い」 ゼロから 2010-04-18
 
Document Actions

PostgreSQL

Up one level

Document Actions

Windows7 64bit にpythonをインストールしてPostgresqlにつなぐ

by seko posted at 2010-12-30 14:47 last modified 2010-12-30 14:47

Postgresql8.2サーバに接続できました。

The URL to Trackback this entry is:
http://lightson.dip.jp/blog/seko/2399/tbping

クレドはどうした by マカロニ

by seko posted at 2010-09-04 13:56 last modified 2010-09-04 13:56

今週は、マカロニさんと一緒にエクセルデータの集計をしました。 沢山の人から送られてきたエクセルファイルをフォルダにいれ、マクロのプログラムで一つのブックにしたあとで、色々な集計をするという内容です。 一つにまとめたデータをデータベースに取り込んで処理するつもりだったのですが、面倒になってきたので、とりあえずエクセルにまとめてごまかそう といったところ

マイ クレド はどうしたんですか? 手間を惜しまないで、難しい方をやりましょう。」

と言われてしまいました。

二人で本を見ながら、データベースを作り、データを取り込んで、Zopeから見えるようになりました。 マカロニさんは初めての経験だったので、SQLのすごさに感動してしばらく口がきけません。

そして

「今まで書いてたマクロって何だったんですか? 普通の人は、これを知らないで死んじゃうんですよね? コンピュータの勉強してて良かった!!」

と喜んでくれました。

先生もやりがいがあります。

The URL to Trackback this entry is:
http://lightson.dip.jp/blog/seko/2324/tbping

Re:クレドはどうした by マカロニ

Posted by Papasan at 2010-09-04 16:05
直接エクセルファイルをZopeからは表示できないのでしょうか?
そんな、都合のいい話はありませんか?

Re:クレドはどうした by マカロニ

Posted by seko at 2010-09-05 16:35
zopeにファイルをアップロードすれば見られると思います。
zopeサーバがwindowsならodbcドライバを入れてつなぐという方向もありますね。

Re:クレドはどうした by マカロニ

Posted by Papasan at 2010-09-05 22:40
えっ!、表が表示されるのですか?
明日やってみます。

Pythonでpostgresのフィールド名を取る

by seko posted at 2008-03-30 14:47 last modified 2008-03-30 14:47

Pythonでデータベースにアクセスしたときは、いつもリストでデータを取っていました。 しかし、何個目が何のデータだったかをすぐに忘れてしまいます。 そこで、最近覚えたディクショナリを使って、データにアクセスできるようにしてみました。 ディクショナリのキーは、フィールド名にしてみました。 最初は、select文で指定したフィールドを使っていたのですが、sumで合計したときなどには不都合なので、データベースから取るようにしてみました。

    import psycopg2

    def get_value_from_db(sql_txt,dsn):
        con =psycopg2.connect(dsn)
        cur=con.cursor()
        cur.execute(sql_txt)
        r=cur.fetchone()
        #cur.descriptionでフィールドの値がとれる
        fields=[]
        for item in cur.description:
            fields.append(item[0])

        values=[]
        while r:
            value_dic={}
            #print r
            for index,field in enumerate(fields):
                value_dic[field]=r[index]
            values.append(value_dic)
            r=cur.fetchone()
        cur.close()
        con.close()
        return values

    #### main

    dsn="dbname=food host=192.168.11.13 port=5432 user=postgres"
    sql_txt="select item_group,sum(qty) as qty from plan  group by item_group order by item_group"

    for k in get_value_from_db(sql_txt,dsn):
        print k['

    >>>
    {'item_group': 'fruit', 'qty': 27170L}
    {'item_group': 'Junk food', 'qty': 15050L}
The URL to Trackback this entry is:
http://lightson.dip.jp/blog/seko/1578/tbping

Psycopg2.0.6でZopeに接続できず 2.0.5.1でOK

by seko posted at 2007-07-14 21:49 last modified 2008-01-17 07:40

CentOS5では、PostgreSQL8が標準のため、はじめてPsycopg2系列を使ってみました。

最新のバージョンはPsycopg2.0.6でsetup.py build , setup.py installでインストールはできました。

zopeへのインストールは、ZPsycopgDAをProductsにコピーするだけです。

PythonからPostgresへの接続は問題なくできたのですが、Zopeでデータベースコネクションを作ろうとする

'OperationalError: can't set encoding to'というエラーがでます。

検索したところバグのようです。

http://www.initd.org/tracker/psycopg/ticket/190

とりあえずpsycopg2.0.5.1を使ったらうまくいきました。

アンインストールの方法はよくわからなかったので、python以下のディレクトリにあるpsycopgのディレクトリを削除してから古いバージョンをいれました。

本件についてはあまり情報がないので書いておきます。

CentOS5のPostgreSQLにPsycopg2をインストール(作成中)

by seko posted at 2007-06-24 14:36 last modified 2007-06-24 14:36

CentOS5上のPostgerSQL8にPsycopg2をインストールしてみる。

テストはCentOS5のxenの上で動いているCentOS5で行った。

Domain0上でDomainUの起動

# xm create /setc/xen/domU1


DomainU1上でpsycopg2のインストール
2007年6月24日現在2.0.6が最新

# yum install postgresql-devel
$ wget http://initd.org/pub/software/psycopg/psycopg2-2.0.6.tar.gz
$ tar zxvf psycopg2-2.0.6.tar.gz
$ cd psycopg2-2.0.6
$ /opt/python2.3.6/bin/python setup.py build
$ su
# /opt/python2.3.6/bin/python setup.py install

$ cp -R /home/zope/src/psycopg2-2.0.6/ZPsycopgDA /var/zope/Products/

動作の確認

pgadminをインストール
ファイルをダウンロード
$ wget http://ftp2.jp.postgresql.org/pub/postgresql//pgadmin3/release/v1.6.3/fedora-core-6/rpm/pgadmin3-1.6.3-1.i386.rpm





The URL to Trackback this entry is:
http://lightson.dip.jp/blog/seko/1304/tbping

Zope2.8.8 on Windows をPostgreSQLに接続する方法

by seko posted at 2007-01-18 21:28 last modified 2007-01-18 22:56

Zope2.6.4にDCOracle2を入れてOracleに、ODBCDAを使って別のマシン上にあるPostgreSQLに接続していたWindowsXPマシンがあるのですが、諸般の事情でZope2.8.8にバージョンアップすることになりました。

DCOracl2 のインストールは先日ブログに書いた方法で成功したのですが、ODBCDAが動かないことが判明しました。

そこで、今回はpsycopgに挑戦してみました。

http://www.stickpeople.com/projects/python/psycopg/にコンパイルされたものがあるのでそれを使います。


前準備
mx-Extensionsのインストール

http://www.egenix.com/files/python/eGenix-mx-Extensions.html#Download-mxBASEからWindows installer for Python 2.3 をダウンロードして、実行してみるとレジストリにpythonのパスが見つからないと出て進みません。
検索してみると次の様な記事がありました。
http://mail.zope.org/pipermail/zope/2005-July/160406.html

ここに書かれた第二案をやってみました。

  • c:\Pythonというフォルダを作る
  • 「スタート」-「ファイル名を指定して実行」でregeditと入力
  • 「編集」−「新規」−「キー」で[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.3\InstallPath] を作っていく。
  • 値をc:\Pythonとする
  • Windows installer for Python 2.3 でインストール完了
  • c:\Pythonの下のファイルをフォルダーをすべて選択し、c:\Program Files\Zope2.8.2-final\binにコピーする。
  • レジストリを削除

psycopg1.1.21をインストール

http://www.stickpeople.com/projects/python/psycopg/からwin-psycopg23.zipWinをダウンロードし解凍します。

libpq.dll and psycopg.pyd をC:\Program Files\Zope-2.8.8-final\bin\DLLsにコピーします。

ZpsycopgDAをインストール

http://initd.org/pub/software/psycopg/から psycopg-1.1.21.tar.gzをダウンロードします。

解凍するとZpsycopgDAというフォルダ中にあるので、それをC:\Program Files\Zope-2.8.8-final\lib\python\Productsにコピーします。(本当はインスタンスのProductsディレクトリの方がいいのかもしれないが違いが分からない)
Zopeを再起動して、Productが正常にはいっていることを確かめます。

これで、postgresqlにはアクセスできるようになりましたが文字化けします。調べてみると、このデータベースの文字コードはEUC_JPになっており、それがそのままhtmlファイルに出ているためと分かりました。
ちなみに、Oracleの方はSJIS、Zopeもshift_jisとなっています。
ODBCドライバを使ってpostgresqlに接続していたときは勝手にSJISに変換されていたようです。

postgresqlはサーバクライアント間の文字コード自動変更機能をもっているようです。
http://www.postgresql.jp/document/pg814doc/html/multibyte.html

今回はDBのencodingはEUC_JPなので、SJISやUTF-8ならこの機能が使えますが、そのためにはクライアントの文字コードが何かを伝えなくてはなりません。

Z Psycopg Databese ConnectioinにはBackend encoding:という項目があり、UTF-8がデフォルトになっています。
意味も分からず、この値をEUC_JPやSJISにしてみたが効果はありません。

第一案 SQLでEncodingを指定
Psycopgのdata connectionのテストで次のSQLを発行してみました。

SET CLIENT_ENCODING TO 'SJIS';
次のSQLでクライアントのencodeはSJISになっていることが確認され、Zope上の文字も正常に表示されます。
SHOW client_encoding;

この方法ではZopeのソースにこのSQLメソッドを追加しなくてはなりません。

第二案 環境変数の設定
Zopeを動かしているWindowXPの「コントロールパネル」-「システム」-「詳細設定」に行き、
「環境変数」に変数名:PGCLIENTENCODING 値:SJIS といれたところ、うまくいきました。

今回は環境変数で対応しましたが、、移植性を考えるとSQLの方がいいような気もします。

最後に、Data connectionの名前をODBCと同じにして、アプリはそのまま動きました。
すごいぞZope!!


以下は私の犯したミス。

最初にWin-PsycopgのリンクにあるZPsycopgDA-2.0.5.1.tar.gzを何の気なしにダウンロードしてを使ったところ、Productが壊れてしまい、次のようなエラーが出ました。
エラーメッセージを見れば分かりませすが、このDAはPsycopg2用のため、psycopg2というモジュールをロードしようとするのですが、当然存在しません。
気づくのにかなりの時間を使ってしまいました。もっとエラーメッセージに敏感になること。
Traceback (most recent call last):
File "C:\Program Files\Zope-2.8.8-final\lib\python\OFS\Application.py", line 695, in import_product
product=__import__(pname, global_dict, global_dict, silly)
File "C:\Program Files\Zope-2.8.8-final\lib\python\Products\ZPsycopgDA\__init__.py", line 23, in ?
import DA
File "C:\Program Files\Zope-2.8.8-final\lib\python\Products\ZPsycopgDA\DA.py", line 25, in ?
import db
File "C:\Program Files\Zope-2.8.8-final\lib\python\Products\ZPsycopgDA\db.py", line 26, in ?
import pool
File "C:\Program Files\Zope-2.8.8-final\lib\python\Products\ZPsycopgDA\pool.py", line 24, in ?
import psycopg2.pool
ImportError: No module named psycopg2.pool


The URL to Trackback this entry is:
http://lightson.dip.jp/blog/seko/1125/tbping

Zopeで万歩計の記録 第一歩

by seko posted at 2006-07-16 22:16 last modified 2006-07-17 08:59

一日1000歩、10分だけ余分に歩く、「ライフスタイルウオ-キング」にトライしているのだが、継続するには歩いた距離をグラフにするのが効果的らしい。

とりあえず、postgreSQLとZopeでここまでは作ってみた。*マーク一つが1000歩だ。

http://lightson.dip.jp/zope/walking/index_html


管理の単位としては、最終的には週が良いらしいので、日付から何週目かを計算してデータベースに保存するようにしたのだが、zope上のpythonでは動かず、外部プログラムにしたりして、けっこう大変だった。

入力画面は用意して、日々の追加はできるのだが、修正や削除などの管理画面ができていない。
とりあえずは、pgAdminとかでしのいで、徐々に作っていこうと思う。


The URL to Trackback this entry is:
http://lightson.dip.jp/blog/seko/899/tbping

SQL書き方ドリル―すらすらと手が動くようになる

by seko posted at 2005-04-14 22:44 last modified 2006-05-04 20:53
データベースを操作するには、SQLという言語で命令を記述します。しかし、やはりプロ向けなので、初心者が分りやすい本というのは無かったように思います。先日ざっと目を通した「SQL書き方ドリル―すらすらと手が動くようになる」は、小中学校でやっていたドリル形式になっていて、毎日一つずつ一ヶ月でマスターできるようになっています。はじめてSQLに触れる人も、これを実行すれば、実用レベルのデータベース操作ができること間違いなしです。

The URL to Trackback this entry is:
http://lightson.dip.jp/blog/seko/174/tbping

Powered by Plone, the Open Source Content Management System

This site conforms to the following standards: