From: | Raghavendra <raghavendra(dot)rao(at)enterprisedb(dot)com> |
---|---|
To: | guxiaobo1982 <guxiaobo1982(at)qq(dot)com> |
Cc: | Jov <amutu(at)amutu(dot)com>, Michael Paquier <michael(dot)paquier(at)gmail(dot)com>, pgsql-general <pgsql-general(at)postgresql(dot)org>, Asif Naeem <asif(dot)naeem(at)enterprisedb(dot)com> |
Subject: | Re: Reply: [GENERAL] 回复: [GENERAL] Can't create plpython language |
Date: | 2013-07-11 12:43:59 |
Message-ID: | CA+h6AhjyDZ92r3Ny6O9w6bNRZAmQ7UDsE8qw1d+mLkG-5Ujw3w@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Wed, Jul 10, 2013 at 7:36 AM, guxiaobo1982 <guxiaobo1982(at)qq(dot)com> wrote:
> I am using PostgreSQL 9.3 beta 2
>
> [postgres(at)lix Multicorn-master]$ psql
> psql (9.3beta2)
> Type "help" for help.
>
> postgres=#
>
>
> It does not work with
> ActivePython3.2(ActivePython-3.2.2.3-linux-x86_64.tar.gz), Which version of
> PostgreSQL are you running?
>
>
Sorry for being late on this email. I overlooked the version you were
pointing. I didn't test on PG 9.3Beta, I did on PG 9.2 after looking your
error showing PG 9.2.4
[postgres(at)lix PostgreSQL]$ psql
> Password:
> psql (9.2.4)
> Type "help" for help.
> postgres=# create language plpython2u;
> ERROR: could not access file "$libdir/plpython2": No such file or
> directory
> postgres=# create language plpython3u;
> ERROR: could not access file "$libdir/plpython3": No such file or
> directory
Later, I began testing it with PG 9.3beta and encountered same error
message as you have shared here.
Did some analysis and finally succeeded to create language plpython3u with
AP-3.2, however with not many tweaks in compilation.(Steps might be
arguing. Pardon me).
Despite the fact that I have ActivePython-3.2 on my system, source
compilation was looking for shared library. Hence compiled explicitly with
shared_libpython=yes.
Pre-Steps: (Assuming you have ActivePython 3.2)
cd /opt/ActivePython-3.2/bin/
cp python3.2-config python-config
cp python3. python
Test:
export PATH=/opt/ActivePython-3.2/bin:$PATH
# which python
/opt/ActivePython-3.2/bin/python
# which python-config
/opt/ActivePython-3.2/bin/python-config
Steps:
1. Install PG 9.3 beta with below steps:
export PATH=/opt/ActivePython-3.2/bin:$PATH
./configure --prefix=/usr/local/pg93b3 --with-python
make shared_libpython=yes
make shared_libpython=yes install
2. After installation you should see below files in your PG installation
Path:
[root(at)localhost pg93b3]# pwd
/usr/local/pg93b3
[root(at)localhost pg93b3]# find . | grep python
./lib/postgresql/plpython3.so
./share/postgresql/extension/plpython3u--unpackaged--1.0.sql
./share/postgresql/extension/plpython3u--1.0.sql
./share/postgresql/extension/plpython3u.control
3. Now, create new cluster using INITDB
4. Before starting the cluster set the PYTHONHOME, PYTHONPATH,
LD_LIBRARY_PATH
export PYTHONHOME=/opt/ActivePython-3.2/
export PYTHONPATH=/opt/ActivePython-3.2/bin:$PATH
export LD_LIBRARY_PATH=/opt/ActivePython-3.2/lib:$LD_LIBRARY_PATH
5. Start the cluster and create the language:
/usr/local/pg93b3/bin/pg_ctl -D /usr/local/pg93b3/data/ start
-bash-4.1$ psql -p 4444
psql (9.3beta1)
Type "help" for help.
postgres=# create language plpython3u;
CREATE LANGUAGE
Out of my analysis on the issue, Asif Naeem from our Dev group shared
his valuable thoughts to conclude this. Thanks Asif.
Question still in mind, Why plpython depends on Shared Libraries (.so) ?
http://www.postgresql.org/docs/9.3/static/install-requirements.html
---
Regards,
Raghavendra
EnterpriseDB Corporation
Blog: http://raghavt.blogspot.com/
From | Date | Subject | |
---|---|---|---|
Next Message | hubert depesz lubaczewski | 2013-07-11 17:48:43 | How can you get "WAL segment has already been removed" when doing synchronous replication ?! |
Previous Message | Jayadevan M | 2013-07-11 12:01:58 | Re: pg recovery |