43回Linux Seminar発表資料
LINET主催,2002年9月26日に開催されたのLinux Seminarでの発表資料です。Zopeの解説や事例,PostgreSQLなどリレーショナルデータベースと接続する際の方法,簡単なデモを含んでいます。
PostgreSQL上のデータをスクリプト言語Pythonで操作するためのモジュールPyGreSQLのインストール方法について解説します。 <--title--> PyGreSQLを使う - インストール <--body-->
PyGreSQLとは
UNIX,Linux,Mac OS X,Windowsなどで稼働するオープンソースのリレーショナルデータベースPostgreSQLとPythonを繋ぐ拡張モジュールです。PostgreSQL上のデータに,Pythonを使ってアクセスすることができます。Python DB API 2.0に対応しています。
PyGreSQLのソースは,古くからPostgreSQLのソースアーカイブに付属しています。また,開発用のCVSツリーがPostgreSQLのツリー上にあるなど,事実上,PostgreSQL - Pythonインターフェースの標準と言えるかもしれません。
最新バージョン
2003年8月20日現在の最新のバージョンは3.2です。
使用にあたって
使用する環境にPythonとPostgreSQLがインストールされている必要があります。PostgreSQLは,後々のことを考え,ソースからインストールすることをおすすめします。
また,外部のマシンで稼働しているPostgreSQLと接続するためには,PostgreSQLの設定で外部からのTCP/IP接続を許す設定をする必要があります。
特定のIPアドレスから接続を許すためには,PostgreSQLの設定ファイル(pg_hba.conf)に,以下のような行を記入します。
host データベース名 ユーザー IPアドレス IPマスク 認証方法
たとえば,dbnameというデータベースに,usernameというユーザーがIPアドレス192.168.1.100からの接続を許したい場合,以下のような行を埋めこみます。認証方式は「無条件(trust)」です。
host dbname username 192.168.1.100 255.255.255.255 trust
なお,PostgreSQL 7.3以上の場合,設定を追加したあと,PostgreSQLを再起動する必要があります。
参考リンク
PostgreSQL 管理者用ガイド - インストールマニュアル
PostgreSQL 管理者用ガイド - Chapter 6. クライアント認証
PostgreSQL のセキュリティ - リモートからアクセス
インストール - UNIX,Linuxなど
PyGreSQLには2種類のインストール方法があります。
PostgreSQLとともにインストール
PostgreSQLのインストール時に行うconfigureで,オプションを指定してPostgreSQLとともにインストールできます。以下が例です。
./configure --enable-multibyte --with-python
PostgreSQL 7.2.xなどに付属のPyGreSQLでは,PyGreSQL自体のインストールオプションの設定からPyGreSQLを正しくインストールできない場合があるようです。最新版(7.3.xなど)に付属しているPyGreSQLであれば,多くのOSで問題なくインストールできるはずです。
単独でインストール
以下のリンクから最新版のソースアーカイブを取得してください。
また,PostgreSQLのソースアーカイブに含まれているPyGreSQLも利用できます。PostgreSQLのソースディレクトリー以下の,src/interfaces/python/というディレクトリーにソースが展開されています。
ソースを取得したら,PyGreSQLのソースディレクトリーに移動します。Super Userになり,
#python setup.py install
というコマンドを実行します。複数バージョンのPythonがあり,特定のバージョンのPythonで使えるようにPyGreSQLをインストールしたい場合は,
#python2.3 setup.py install
のようにしてください。
なお,Python 2.0以前にPyGreSQLをインストール場合は,distutilsというモジュールを別途インストールする必要があります。distutilsとは,Pythonモジュールのインストールを支援するためのモジュールです。
PostgreSQLのインストール方法などによっては,上記方法でPyGreSQLがうまくインストールできないかもしれません。その場合は,PyGreSQLのソースディレクトリーにある,setup.pyというファイル中の「パス情報」を書き換えてみてください。33行目からが,UNIX,Linuxで利用される設定です。PostgreSQLのインクルードファイルへのパスや,PostgreSQLのライブラリへのパスなどを,環境にあわせて書き換えてみてください。
Windows版のインストール
UNIX,Linuxとほぼ同様にインストールできるようですが,ライブラリーのビルドにC++コンパイラーが必要です。以前はバイナリー版が配布されていましたが,現在は配布されていないようです。
なお,こちらのサイト(英文)に,「メールをくれればバイナリー版を送る」とあります。
関連リンク
- PyGreSQL.org
- 上記に比べ情報が古い
- ZPygreSQLDA
- PyGreSQLを使って,ZopeとPostgreSQLを接続するためのDA Productです。
- アーカイブへのリンク