DEV Community

YuDi
YuDi

Posted on

Python 连接PostgreSQL

这两天我写了一个项目,由于本人比较喜欢用PostgreSQL数据库,故就选用了此数据库。从网上查了一下说是用psycopg此数据库连接的“驱动”(本人比较喜欢这样叫)可是在安装了这个驱动之后,发现只要一引用这个包就会报错。开始以为是安装的文件有问题。于是就把安装的这个给卸载了。又重新安装了一次。但情况依然,后来就觉得是安装的版本不对。就安装了psycopg2(为Python2.x版本用的)这个驱动。但也同样是不行。后来没办法,就一行代码一行代码的调试。当时真是郁闷的不行,甚至怀疑自己这么多年的码农生涯的方向有问题了。是自己的识知固化了自己的想法。是想法有问题了。最后在一行一行的调试代码的情况下。发现了如果Python想用psycopg驱动连接PostgreSQL数据库的话那么还需要有另外的驱动。有三种途径。
其代码在psycopg/pq/init.py

Image description

第一种:就是再安装一个psycopg_c包,但我安装了一下这个包就安装失败。于是就查了一下这个包的安装问题。得到了如果安装这个包需要有C语言的客户端。但本人不想再安装一个C语言的客户端,于是放弃了这个。
第二种:就是要安装psycopg_binary这个包,这个包依本人看就是一个纯的Python的包。没有其它的要求(也许是有,只是我的项目已经满足了这些要求。反正最终我选择的就是这个),安装完成。之后再试就可以正常的连接PostgreSQL服务器了。
第三种:就是要安装一个C语言的客户端类库。这种方式我本人没有测试,也只是看了看里面的代码,就是一种直接调用操作系统动态库的方法。但也需要安装C语言的客户端或者是类库。于是也放弃了这种方式。
最后选择了第二种方式。给项目安装了一个psycopg_binary依赖包。到此这场本人第一交用Python语言的连接PostgreSQL数据库的风波总算是过去了。

Top comments (1)

Collapse
 
second profile image
YuDi

Python,PostgreSQL