table of contents
摘要
psycopg是一种用于执行sql语句的pythonapi,可以为postgresql、gaussdb数据库提供统一访问接口,应用程序可基于它进行数据操作。psycopg2是对libpq的封装,主要使用c语言实现,既高效又安全。它具有客户端游标和服务器端游标、异步通信和通知、支持“copy to/copy from”功能。支持多种类型python开箱即用,适配postgresql数据类型;通过灵活的对象适配系统,可以扩展和定制适配。psycopg2兼容unicode和python 3。
获取安装包
- 下载地址:https://opengauss.org/zh/download.html
选择你需要的版本进行下载。
安装驱动
- 解压安装包
[postgres@10 ~]$ tar -zxvf opengauss-2.1.0-centos-x86_64-python.tar.gz [postgres@10 ~]$ cd psycopg2/ [postgres@10 psycopg2]$ ll total 1224 -rw-r--r-- 1 postgres postgres 14277 sep 28 20:08 errorcodes.py -rw-r--r-- 1 postgres postgres 1425 sep 28 20:08 errors.py -rw-r--r-- 1 postgres postgres 6797 sep 28 20:08 extensions.py -rw-r--r-- 1 postgres postgres 42863 sep 28 20:08 extras.py -rw-r--r-- 1 postgres postgres 4768 sep 28 20:08 __init__.py -rw-r--r-- 1 postgres postgres 2922 sep 28 20:08 _ipaddress.py -rw-r--r-- 1 postgres postgres 7153 sep 28 20:08 _json.py -rw-r--r-- 1 postgres postgres 6316 sep 28 20:08 pool.py -rwxr-xr-x 1 postgres postgres 1104672 sep 30 14:41 _psycopg.so -rw-r--r-- 1 postgres postgres 17608 sep 28 20:08 _range.py -rw-r--r-- 1 postgres postgres 14699 sep 28 20:08 sql.py -rw-r--r-- 1 postgres postgres 4870 sep 28 20:08 tz.py
- 找到python安装目录
[postgres@10 psycopg2]$ whereis python python: /usr/bin/python3.7 /usr/bin/python3.7m /usr/bin/python3.7-config /usr/bin/python3.7m-config /usr/bin/python3.7m-x86_64-config /usr/lib/python3.7 /usr/lib/python2.7 /usr/lib64/python3.7 /usr/lib64/python2.7 /usr/local/lib/python3.7 /usr/include/python3.7m /usr/include/python2.7-debug /usr/include/python2.7
我的服务器上面有两个版本的python,分别是python3.7和python2.7。
- 找到site-packages目录
[postgres@10 lib]$ pwd /usr/lib [postgres@10 lib]$ ll python python2.7/ python3.7/
- 使用root用户将psycopg2目录copy到对应版本的site-packages目录下
[root@10 postgres]# cp -r /home/postgres/psycopg2/ /usr/lib/python3.7/site-packages/
- 赋权
[root@10 site-packages]# chmod -r 775 psycopg2/
测试
[postgres@10 ~]$ python3
python 3.7.9 (default, jan 25 2022, 15:12:36)
[gcc 7.3.0] on linux
type "help", "米乐app官网下载 copyright", "credits" or "license" for more information.
>>> import psycopg2
>>> conn=psycopg2.connect(database="postgres",user="postgres",password="frank@123",host="localhost",port=5432)
>>> cur=conn.cursor()
>>> cur.execute("create table student(id integer,name varchar,sex varchar);")
>>> cur.execute("insert into student(id,name,sex) values(%s,%s,%s)",(1,'aspirin','m'))
>>> cur.execute("insert into student(id,name,sex) values(%s,%s,%s)",(2,'taxol','f'))
>>> cur.execute('select * from student')
>>> results=cur.fetchall()
>>> print (results)
[(1, 'aspirin', 'm'), (2, 'taxol', 'f')]
>>> conn.commit()
>>> cur.close()
>>> conn.close()
>>>
fqa
第一次尝试的时候使用的是centos_x86_64
版本,测试是会报错。
>>> import psycopg2
traceback (most recent call last):
file "" , line 1, in
file "/usr/local/lib/python3.6/site-packages/psycopg2/__init__.py", line 51, in
from psycopg2._psycopg import ( # noqa
importerror: libpython3.6m.so.1.0: cannot open shared object file: no such file or directory
试图通过编译安装3.6版本解决这个问题,但是编译安装后没有编译出libpython3.6m.so.1.0
,只有libpython3.6m.a
。
后来直接下载openeuler_x86_64
版本,问题解决。ps. 我是kylin v10的操作系统,其他系统可能遇到不同问题,可以评论区留言。
最后修改时间:2022-08-05 20:35:08
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【米乐app官网下载的版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。