早川@名古屋です。 Vine2.5のRPMで、 Python1.5.2からPostgreSQL7.2が使えてる方はいらっしゃるでしょうか? 以下の手順でPostgreSQLにアクセスするライブラリが 読み込まれるはずなのですが、うまくいきません。 (Pythonは数日前に使いはじめたばかりで、詳しくありません) 別のRedHat7.2のマシンでは以下の手順でエラーはでません。 $ 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 >>> (※ Ctrl-Dで抜ける) マシンには以下の関連RPMが入っています(これらはVine2.5のデフォルト)。 $ rpm -qa | grep postgres postgresql-7.2-0vl3 postgresql-devel-7.2-0vl3 postgresql-jdbc-7.2-0vl3 postgresql-libs-7.2-0vl3 postgresql-odbc-7.2-0vl3 postgresql-perl-7.2-0vl3 postgresql-python-7.2-0vl3 postgresql-server-7.2-0vl3 postgresql-tcl-7.2-0vl3 postgresql-tk-7.2-0vl3 $ rpm -qa | grep python postgresql-python-7.2-0vl3 python-1.5.2-28vl3 python-devel-1.5.2-28vl3 python-docs-1.5.2-28vl3 python-tools-1.5.2-28vl3 pythonlib-1.28-1vl2 rpm-python-3.0.6-0vl22 Vine2.5のPostgreSQLのSRPM (postgresql-7.2-0vl3.src.rpm) を もってきてVine2.5(+some updates)の環境でそのままrebuildしたところ、 ログに以下のような出力がありました(3ヶ所を抜粋)。 make[3]: 入ります ディレクトリ `/home/hayakawa/rpm/BUILD/postgresql-7.2/src/interfaces/python' gcc -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -fpic -I../../../src/interfaces/libpq -I../../../src/include -I/usr/include/python1.5 -c -o pgmodule.o pgmodule.c pgmodule.c: In function `pgpy_quote_fast': pgmodule.c:3166: warning: implicit declaration of function `PySequence_Size' pgmodule.c:3194: warning: implicit declaration of function `_PyString_Join' pgmodule.c:3194: warning: assignment makes pointer from integer without a cast pgmodule.c:3197: warning: implicit declaration of function `PyString_FromFormat'pgmodule.c:3197: warning: assignment makes pointer from integer without a cast ar crs lib_pgmodule.a pgmodule.o ranlib lib_pgmodule.a gcc -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -fpic -shared -Wl,-soname,lib_pgmodule.so.0 pgmodule.o -L../../../src/interfaces/libpq -lpq -o lib_pgmodule.so.0.0 rm -f lib_pgmodule.so.0 ln -s lib_pgmodule.so.0.0 lib_pgmodule.so.0 rm -f lib_pgmodule.so ln -s lib_pgmodule.so.0.0 lib_pgmodule.so make -C ../../../src/interfaces/libpq all make[4]: 入ります ディレクトリ `/home/hayakawa/rpm/BUILD/postgresql-7.2/src/interfaces/libpq' make[4]: `all' に対して行うべき事はありません。 make[4]: 出ます ディレクトリ `/home/hayakawa/rpm/BUILD/postgresql-7.2/src/interfaces/libpq' make[3]: 出ます ディレクトリ `/home/hayakawa/rpm/BUILD/postgresql-7.2/src/interfaces/python' + pushd src/interfaces/python ~/rpm/BUILD/postgresql-7.2/src/interfaces/python ~/rpm/BUILD/postgresql-7.2 + mkdir -p /var/tmp/postgresql-7.2-root/usr/lib/python1.5/site-packages + install -m 755 lib_pgmodule.so pg.py pgdb.py setup.py /var/tmp/postgresql-7.2-root/usr/lib/python1.5/site-packages/ ファイルの処理中: postgresql-python-7.2-0vl3 実行中(%doc): /bin/sh -e /var/tmp/rpm-tmp.64836 + umask 022 + cd /home/hayakawa/rpm/BUILD + cd postgresql-7.2 + DOCDIR=/var/tmp/postgresql-7.2-root/usr/doc/postgresql-python-7.2 + export DOCDIR + rm -rf /var/tmp/postgresql-7.2-root/usr/doc/postgresql-python-7.2 + /bin/mkdir -p /var/tmp/postgresql-7.2-root/usr/doc/postgresql-python-7.2 + cp -pr src/interfaces/python/README src/interfaces/python/tutorial /var/tmp/postgresql-7.2-root/usr/doc/postgresql-python-7.2 + exit 0 Provides を探しています: (/usr/lib/rpm/find-provides を使用しています)... Requires を探しています: (/usr/lib/rpm/find-requires を使用しています)... objdump: /var/tmp/postgresql-7.2-root/usr/doc/postgresql-python-7.2/tutorial/advanced .py: File format not recognized objdump: /var/tmp/postgresql-7.2-root/usr/doc/postgresql-python-7.2/tutorial/basics.p y: File format not recognized objdump: /var/tmp/postgresql-7.2-root/usr/lib/python1.5/site-packages/pgdb.py: File format not recognized objdump: /var/tmp/postgresql-7.2-root/usr/lib/python1.5/site-packages/setup.py: File format not recognized 1165 行目: 依存性トークンは英数字、'_'、'/' で始まらなければなりません: - First 7.1 beta test-build Requires を見つけるのに失敗しました: Provides: lib_pgmodule.so.0 Requires: python >= 1.5 ld-linux.so.2 libc.so.6 libcrypt.so.1 libcrypto.so.2 libdl.so.2 libnsl.so.1 libpq.so.2 libresolv.so.2 libssl.so.2 postgresql.specの中に、以下のように変更されている部分があります。 このからみじゃないかと思いますが、 RPMの構築には詳しくなくてしっかり追えていません。 とりあえずレポートまで。 %if %python # Python pushd src/interfaces/python # Makefile.pre.in doesn't yet support .py files anyway, so we stick to a manual installation mkdir -p $RPM_BUILD_ROOT%{_libdir}/python%{pyver}/site-packages # install -m 755 _pgmodule.so *.py $RPM_BUILD_ROOT%{_libdir}/python%{pyver}/site-packages/ install -m 755 lib_pgmodule.so *.py $RPM_BUILD_ROOT%{_libdir}/python%{pyver}/site-packages/ popd %endif ----- With your dreaming, with your smile. Hayakawa, Hiroshi <hayakawa@xxxxxxxxxxxxxxx> Nagoya,Aichi,JAPAN ☆彡