我在使用psycopg2-binary的时候遇到了两个坑,写下来看看你有没有踩过,没有的话可以看看,以后不要再跳坑了。坑1.尽量不要像官方文档说的那样使用psycopg2-binary,psycopg2-binary不需要编译,可以算是绿色版,适合初学者使用Python快速连接PostgreSQL,如果你在pypi上发送一个包,也不应该依赖psycopg2-binary,应该直接依赖psycopg2。我没听。我在生产环境直接使用了psycopg2-binary,2.7.5版本。结果,我被录用了。在使用server-side-cursor(namedcursor)时,经常会出现读取数据库卡住的情况。我怀疑这与此版本中的错误有关。为什么不直接从源码安装,因为老是报pg_confignotfound之类的错误,生产环境安装一个postgresql-lib还是挺麻烦的。我觉得这也是python的缺点之一。需要编译很多依赖包,编译的时候会出现缺少各种包的问题,??所以不能称之为跨平台。我是在mac上写的,拿到linux上,得折腾很多,java很好。最后是怎么解决的,升级到最新版的psycopg2-binary就解决了,如果再出现,只能老老实实安装postgresql-lib了。坑2.尽量不要pipinstallwhl文件这次我离线下载了psycopg2-binary文件,psycopg2_binary-2.8.6-cp36-cp36m-manylinux1_x86_64.whl我分别尝试了两种方法,第二种成功了:方法一:pipinstallpsycopg2_binary-2.8.6-cp36-cp36m-manylinux1_x86_64.whl方法一执行importpsycopg2.extras报错,方法二不会。方法二:pipinstallpsycopg2-binary--no-index-f./足以说明最好在联网环境下使用pip。最后,在使用开源软件包时,一定要阅读官方文档中的说明,尤其是那些注意事项,这样可以节省很多排错的时间。
