plpython 9.2.2
来源:互联网 发布:剑网三dx11优化版 编辑:程序博客网 时间:2024/06/05 07:44
注意,安装python时,需要--enable-shared
安装pg时,需要--with-python
如果python,重装报 error while loading shared libraries: libpython2.7
则需要
vi /etc/ld.so.conf 添加/usr/local/Python2.7/lib
/sbin/ldconfig
/sbin/ldconfig -v
readline 和 readline-devel 最好安装好
PostgreSQL add plpython in database which compiled --without-python —— 德哥
群里的一位兄弟问到的一个问题, 当postgresql 软件在编译时未使用with-python或者使用了without-python选项时.
编译的数据库初始化后没有plpython函数语言.
如果后期要加入plpython语言应该怎么加?
我测试了一下, 是可以加入的, 过程如下 :
1. 下载源码包如postgresql-9.2.2.tar.gz
2. 解压
tar -zxvf postgresql-9.2.2.tar.gz
3. 确保Python.h头文件存在
ocz@db-172-16-3-150-> locate Python.h
/opt/greenplum-db-4.2.2.4/ext/python/include/python2.6/Python.h
/opt/soft_bak/Python-3.2.3/Include/Python.h
/usr/include/python2.4/Python.h
/usr/local/include/python2.7/Python.h
/usr/local/include/python3.2m/Python.h
/usr/share/doc/swig-1.3.29/Manual/Python.html
4. 进入postgresql 源码目录
cd postgresql-9.2.1/src/pl/plpython
5. 编辑Makefile
override CPPFLAGS := -I. -I$(srcdir) $(python_includespec) $(CPPFLAGS)
改为
override CPPFLAGS := -I. -I$(srcdir) $(python_includespec) $(CPPFLAGS) -I/usr/include/python2.4
6. 编译安装
首先要把pg_config加入到路径中
export PATH=/home/digoal/pgsql9.2.1/bin
gmake all
gmake install
/bin/mkdir -p '/home/digoal/pgsql9.2.1/lib'
/bin/sh ../../../config/install-sh -c -m 755 plpython.so '/home/digoal/pgsql9.2.1/lib/plpython.so'
/bin/mkdir -p '/home/digoal/pgsql9.2.1/share/extension'
/bin/sh ../../../config/install-sh -c -m 644 ./plpythonu.control ./plpythonu--1.0.sql ./plpythonu--unpackaged--1.0.sql '/home/digoal/pgsql9.2.1/share/extension/'
7. 创建plpythonu extension
postgres=# create extension plpythonu;
ERROR: could not access file "$libdir/plpython2": No such file or directory
为啥会这样呢?
从第六步看到so文件是plpython.so.
但是控制文件plpythonu.control中用到的是plpython2.so
root@db-172-16-3-150-> less plpythonu.control
# plpythonu extension
comment = 'PL/PythonU untrusted procedural language'
default_version = '1.0'
module_pathname = '$libdir/plpython2'
relocatable = false
schema = pg_catalog
superuser = true
看起来直接编译plpython还是有点问题.
所以可以考虑第二种办法, 把整个PostgreSQL使用with-python全编译一遍.
然后把plpython2.so和plpython*.sql拷贝到$PGHOME中.
root@db-172-16-3-150-> cd pgsql9.2.1/
root@db-172-16-3-150-> cd share/extension/
root@db-172-16-3-150-> ll|grep python
-rw-r--r-- 1 ocz ocz 351 Jan 7 14:13 plpython2u--1.0.sql
-rw-r--r-- 1 ocz ocz 196 Jan 7 14:13 plpython2u.control
-rw-r--r-- 1 ocz ocz 402 Jan 7 14:13 plpython2u--unpackaged--1.0.sql
-rw-r--r-- 1 ocz ocz 347 Jan 7 14:13 plpythonu--1.0.sql
-rw-r--r-- 1 ocz ocz 194 Jan 7 14:13 plpythonu.control
-rw-r--r-- 1 ocz ocz 393 Jan 7 14:13 plpythonu--unpackaged--1.0.sql
把以上SQL文件拷贝到老的$PGHOME/share/extension目录下. plpython2.so拷贝到$PGHOME/lib下.
就可以创建plpythonu和plpython2u语言了.
postgres=# create extension plpython2u;
CREATE EXTENSION
postgres=# create extension plpythonu;
CREATE EXTENSION
- plpython 9.2.2
- plpython 9.2.2
- plpython写的一个存储过程函数
- 9.2.2
- VS2010编译PostgreSQL 9.2.2
- Eclipse编译PostgreSQL 9.2.2
- VS2010编译PostgreSQL 9.2.2
- 第九章 9.2.2节练习 & 9.2.3节练习
- 9.2
- 9.2
- 9.2
- 9.2
- 9.2
- C++primer(第五版)9.2.2节,9.2.3节,9.2.4节练习答案
- ArcGis 9.2客户端开发简介(2)
- 9.2.2 文件解密函数Decrypt_File
- 9.2 Prototype and Inheritance (2nd)
- 9.2.2邻接表存储方法
- hdu 1213 How Many Tables
- poj 2387 最短路径Dijkstra
- java中httpclent以post方式提交请求时,http返回码是302重定向时,不自动跳转的处理
- 九度OJ 题目1141:Financial Management
- c++中利用标准库 将string转换为int
- plpython 9.2.2
- C++ 匿名namespace的作用以及它与static的区别
- hits算法
- MapReduce执行流程
- WPF数据验证(4)——响应与获取验证错误
- php读取操作大文件
- HDU 1218 - Blurred Vision
- MySQL 5.6 GA – Replication Enhancements
- UVA 10624 - Super Number