wiki.zope.jp
psycopg
   
RecentChanges WikiHelp WikiPractice JumpSearch

http://initd.org/Software/psycopg
http://www.zope.org/Members/fog/psycopg

インストールの仕方

0 はじめに

これはVine Linux 2.1.5で試したものです。Linux環境だとほぼ共通した話だと思いますが、 WindowsでPostgreSQLを利用したい場合はZODBCDAを使うのが賢明だと思われます。 それについてはZJUGのHowToを参照して下さい。

1 用意するもの

Zope,Python,PostgreSQL,psycopg(以上、当たり前),mxDateTime

2 インストール

2-1 mxDateTimeのインストール

ここから入手します。

2-1-1 ソースからコンパイルする場合

アーカイブを展開して以下を実行。
# python setup.py install

2-1-2 バイナリからインストールする場合

バイナリパッケージも配布されていますが、psycopgのコンパイルにmxDateTime.hがいるので やはりソース(SRPMでも可だと思う)は入手しておいて下さい。

上記のダウンロードサイトからwindows用バイナリ、LinuxRPMが配布されています。

ちなみに筆者のようにActivePythonユーザだとpyppmが利用できます。
# pyppm install egenix-mx-base

プロクシを利用している場合は以下のように環境変数を設定してください。
export http_proxy=hoge.proxy.com:8080

「3.その他の注意」で書いているようにシンボリックリンクをはっておいた方がいいでしょう。

2-2 Pythonへのインストール

# ./configure --with-mxdatetime-includes=$DATETIMESOURCE/mx/DateTime/mxDateTime --with-postgres-libraries=$PGLIB --with-postgres-includes=$PGINCLUDE --with-zope=$ZOPE_HOME
# make
# make install
ディレクトリは環境に合わせて読み替えて下さい。ちなみに筆者の場合、
$DATETIMESOURCE=/usr/local/src/egenix-mx-base-2.0.2
$PGLIB=/usr/lib/pgsql
$PGINCLUDE=/usr/include/pgsql
$ZOPE_HOME=/usr/local/zope
です。

2-3 Zopeへのインストール

# make install-zope
実体はソース内のZPsycopgDAをProducts以下にコピーしているだけ。
Zopeのバージョンアップの際はこれだけ。(と思う

3 その他の注意

環境によってはPythonが「mxDateTimeなんぞしらん」といわれるかもしれませんのでシンボリックリンクをはって対処しませう。
# cd $PYLIB/python%{ver}/site-packages
# ln -s mx/DateTime/mxDateTime

筆者の場合$PYLIBは以下の通り。
$PYLIB/python%{ver}/=/usr/local/ActivePython-2.1/lib/python2.1
python-1.5.2を利用している場合はモジュール名がDateTimeMXかも。
# cd $PYLIB/python1.5/site-packages
# ln -s DateTimeMX DateTime
ちなみに筆者の環境ではpsycopg-1.0のコンパイルでこけたような気がしましたが気のせいでした。

あと、前から気になってるのがZopeのドロップダウンリストでZ Psycopg Database Connectionが2つ出ます。
実害がないのでそのままで使ってます。

4 使い方

Zopeのマネージメント画面のドロップダウンリストから「Z Psycopg Database Connection」を選択。
!IdやTitleは適当につけて、Enter a Database Connection String のところは以下のようにします。
dbname = zopedb user = zopeuser password = zopepassword
斜線のところは環境に応じて変更して下さい。上記例ではPostgreSQLユーザにzopeuserが存在し、パスワードがzopepasswordでデータベース名がzopedbの場合です。
もちろん、ポートやホストの指定もできます。

Z Psycopg Database Connection の Browse画面でテーブルを確認し、TestでSQL文をたたいてみましょう。
うまく動作すればOKです。

日本ではPostgreSQLをPHPと組み合わせて使うのが圧倒的に多いと思いますが、Zopeでやればとても簡単にできます。
すでにPHPで構築済みのものであってもスムーズに移行できると思いますが、いかがでしょうか

--
SerPenTe


コメント

Last edited Sun, 10 Sep 2006 02:18:20 +0900 Edit this page