vine-users ML アーカイブ



[vine-users:052965] Re: postgresql-python-7.2-0vl3 (on Vine2.5)

  • From: HAYAKAWA Hiroshi <hayakawa@xxxxxxxxxxxxxxx>
  • Subject: [vine-users:052965] Re: postgresql-python-7.2-0vl3 (on Vine2.5)
  • Date: Wed, 21 Aug 2002 14:05:37 +0900
早川@名古屋です。

自己レスです。

on 02.8.15 9:27 AM, HAYAKAWA Hiroshi at hayakawa@xxxxxxxxxxxxxxx wrote:

> Vine2.5のRPMで、
> Python1.5.2からPostgreSQL7.2が使えてる方はいらっしゃるでしょうか?

やはり、postgresql-python-7.2-0vl3.rpmを生成する
postgresql-7.2-0vl3.src.rpmのパッケージングに問題があるようです。


きちんとした解決策が示せませんので、
探索手順などを少しレポートします。

前のメールにも書きました通り、標準状態では以下のようになります。

$ python
Python 1.5.2 (#1, Nov 20 2001, 03:56:25)  [GCC 2.95.3 20010315 (release)] on
linux-i386
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>> import pg
Traceback (innermost last):
  File "<stdin>", line 1, in ?
  File "pg.py", line 7, in ?
    from _pg import *
ImportError: No module named _pg
>>> 

postgresql-python-7.2-0vl3.rpmは以下のものをインストールしますが、

$ rpm -ql postgresql-python-7.2-0vl3
/usr/doc/postgresql-python-7.2
/usr/doc/postgresql-python-7.2/README
/usr/doc/postgresql-python-7.2/tutorial
/usr/doc/postgresql-python-7.2/tutorial/advanced.py
/usr/doc/postgresql-python-7.2/tutorial/basics.py
/usr/doc/postgresql-python-7.2/tutorial/func.py
/usr/doc/postgresql-python-7.2/tutorial/syscat.py
/usr/lib/python1.5/site-packages/lib_pgmodule.so
/usr/lib/python1.5/site-packages/pg.py
/usr/lib/python1.5/site-packages/pgdb.py
/usr/lib/python1.5/site-packages/setup.py

このlib_pgmodule.soを_pgmodule.soとしてコピーすると、

$ python
Python 1.5.2 (#1, Nov 20 2001, 03:56:25)  [GCC 2.95.3 20010315 (release)] on
linux-i386
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>> import pg
Traceback (innermost last):
  File "<stdin>", line 1, in ?
  File "pg.py", line 7, in ?
    from _pg import *
ImportError: ./_pgmodule.so: undefined symbol: _PyString_Join
>>>

となりました。

この問題の起きないRedHat7.2のSRPM(postgresql-7.2.1-5.src.rpm)を
もってきて見比べてみるなどしたところ、
postgresql-7.2-0vl3.src.rpmに含まれる
postgresql-7.2rc2-betterquote.patchが
postgresql-7.2/src/interfaces/python/pgmodule.c
を書き換えていることがわかったので、
Vine2.5のSRPM(postgresql-7.2-0vl3.src.rpm)にて
specファイルを以下のように書きかえてRPMを構築してみました。
(もう一ヶ所lib_pgmoduleとなっているところは書き換えない)
ちなみにbetterquote.patchについては
http://archives.postgresql.org/pgsql-patches/2002-01/msg00084.php
に情報をみつけました。

$ diff postgresql.spec.orig postgresql.spec
73c73
< Patch3: postgresql-7.2rc2-betterquote.patch
---
> #Patch3: postgresql-7.2rc2-betterquote.patch
333c333
< %patch3 -p1
---
> #%patch3 -p1
934c934
< %{_libdir}/python%{pyver}/site-packages/lib_pgmodule.so
---
> %{_libdir}/python%{pyver}/site-packages/_pgmodule.so

ログからはpgmodule.cに関するwarningのみ消えました。
(注意や失敗のメッセージは残っています)
構成物は以下のようになっています。

$ rpm -qpl postgresql-python-7.2-0vl3(※試作したもの)
/usr/doc/postgresql-python-7.2
/usr/doc/postgresql-python-7.2/README
/usr/doc/postgresql-python-7.2/tutorial
/usr/doc/postgresql-python-7.2/tutorial/advanced.py
/usr/doc/postgresql-python-7.2/tutorial/basics.py
/usr/doc/postgresql-python-7.2/tutorial/func.py
/usr/doc/postgresql-python-7.2/tutorial/syscat.py
/usr/lib/python1.5/site-packages/_pgmodule.so
/usr/lib/python1.5/site-packages/pg.py
/usr/lib/python1.5/site-packages/pgdb.py
/usr/lib/python1.5/site-packages/setup.py

とりあえず、既存のpostgresql-python-7.2-0vl3を削除し、
この試しに生成したパッケージをインストールして試してみたところ、
以下の通りpgライブラリをimportできるようになりました。

$ python
Python 1.5.2 (#1, Nov 20 2001, 03:56:25)  [GCC 2.95.3 20010315 (release)] on
linux-i386
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>> import pg
>>>


対処療法的に試してみただけですので、
どこにどのような影響が出てくるのかしっかりと踏まえてはいません。
もし試される方がいらっしゃいましたらその点ご了解ください。

これ以上は能力的に手に負えませんので、
どなたか詳しい方、よろしくお願いします。


P.S.
いろいろ検索してもこの障害情報は全然引っ掛からないのですが、
VineでPythonからPostgreSQLを使ってる方は少ないのでしょうかね。
VineでPythonを使ってる友人が2人ほどいるのですが、
一人はPythonからはPostgreSQLを使わず、
もう一人はPostgreSQLを使ってはいるものの
tarballから入れたとのことで、何も情報が得られませんでした。


-----
With your dreaming, with your smile.
Hayakawa, Hiroshi <hayakawa@xxxxxxxxxxxxxxx>
Nagoya,Aichi,JAPAN ☆彡