专栏首页Python七号使用 psycopg2 时遇到的两个坑

使用 psycopg2 时遇到的两个坑

我在使用 psycopg2-binary 遇到两个坑,写出来,看看你是否踩过,如果没有,可以看一下,以后避免跳坑。

坑1. 尽可能不要使用 psycopg2-binary

官方文档说了,psycopg2-binary 不需要编译,可以认为是绿色版,是为了初学者用 Python 快速和 PostgreSQL 进行连接而用的, 如果你在 pypi 上发包,也不应该依赖 psycopg2-binary,应该直接依赖 psycopg2。

我没听,直接在生产环境用了 psycopg2-binary,版本 2.7.5 ,结果就中招了,在使用 server-side-cursor (named cursor)的时候,经常出现读数据库卡住不动的情况,怀疑跟这个版本的 bug 有关系。

为啥不直接从源代码安装,因为总是报 pg_config not found 之类的错误,而生产环境,安装一个 postgresql-lib 是相当麻烦的。

我想这也是 python 的缺点之一,依赖的包很多需要编译,而编译就会出现缺少各种各样的包的问题,这样就不能称之为跨平台了,我在 mac 上写好,弄到 linux 上,还得折腾一大堆,java 这一点就很好。

最后怎么解决的呢,升级到最新版本的 psycopg2-binary 就解决了,如果再出现,只能老老实实安装 postgresql-lib。

坑2. 尽可能不要 pip install whl 文件

这次我离线下载了 psycopg2-binary 的文件,psycopg2_binary-2.8.6-cp36-cp36m-manylinux1_x86_64.whl

我分别试了两种方法,第二种成功:

方法一:

pip install psycopg2_binary-2.8.6-cp36-cp36m-manylinux1_x86_64.whl

方法一在执行 import psycopg2.extras 时报错,方法二没有。

方法二:

pip install psycopg2-binary --no-index -f ./

足以说明,使用 pip 最好还是联网环境。

最后的话

在使用开源软件包时,一定要看下官方文档的说明,尤其那些注意事项,这样就可以节省很多排错时间。

本文分享自微信公众号 - Python七号(PythonSeven),作者:somenzz

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-10-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Retrofit--记使用Retrofit时遇到的一个坑

    版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/lyhhj/article/details/52...

    Hankkin
  • 使用strptime函数时遇到的一个坑

    做新专辑排序的需求时,需要对专辑的时间进行排序,由于目前该字段是字符串类型的日期,在排序函数中要转成标准的UNIX时间戳来进行对比,大概代码如下:

    jackieluo
  • 使用TabLayout遇到的几个坑

    提莫队长
  • 使用pycharm的django功能,psycopg2遇到重大问题

    由于下一年要使用django开发东西,今天我使用了pycharm来创建Django项目。

    吻得太逼真
  • 使用SDAutolayout遇到的坑

    freesan44
  • MYSQL中使用order by…limit时候遇到的坑

    最近遇到这样的一个奇怪的问题——SQL中排序分页的查询结果中出现了重复数据。百思不得其解,检查了代码,没有发现任何问题,但这种现象就是会出现。

    SEian.G
  • 使用 SpringBoot 的 CommandLineRunner 遇到的坑

    来源:blog.csdn.net/zwq_zwq_zwq/article/details/81059017

    Java小咖秀
  • 使用Jenkins部署.Net Core遇到的几个坑

      这里最应该注意的是操作系统版本和Jenkins的版本,不同的版本,特别是操作系统操作的shell可能千差万别,你会在网上看到各种命令,所以选择好自己的环境。

    Edison.Ma
  • k8s上使用jenkins遇到的坑

    最近几天,遇到了一个让我百思不得其解的问题,那就是我使用jenkins pipeline进行简单的测试时,两个stage之间需要1分钟左右的切换时...

    没有故事的陈师傅
  • Android 使用so库的遇到的坑

    做Android开发会遇到各种各样的问题,遇到问题不可怕,解决了并且知道为什么,下次遇到能马上解决就好了,今天要说的就是这个so库的使用采坑了。

    晨曦_LLW
  • Android中使用背景色Alpha值遇到的一个坑

    Android通过设置Alpha值图片淡化、透明度大家应该都知道,下面是段简单的示例代码:

    砸漏
  • selenium调用chromedriver禁用flash时遇到的深坑

    阿章-python小学生
  • 使用Python操作redis遇到的坑 转

    基于Python3.4,往redis里插入数据后再读出来时所有键与值都是byte类型的,就是说如果你要使用这些值全部都得转换编码!想想就崩溃!但又想想肯定会有简...

    双面人
  • 使用 C++ 智能指针遇到的坑

    C++11 中推出了三种智能指针,unique_ptr、shared_ptr 和 weak_ptr,同时也将 auto_ptr 置为废弃 (deprecated...

    程序员小王
  • 【kafka异常】使用Spring-kafka遇到的坑

    有想进滴滴LogI开源用户群的加我个人微信: jjdlmn_ 进群(备注:进群) 群里面主要交流 kakfa、es、agent、LogI-kafka-mana...

    石臻臻的杂货铺[同名公众号]
  • Python 包安装和 postgresql 的一些问题

    今天安装 hgvs 这个 python 包的时候,遇到几个比较有代表性的问题,记录分享一下。

    史提芬先森
  • php 使用函数中遇到的坑之----strpos

    strpos — 查找字符串首次出现的位置 mixed strpos ( string $haystack , mixed $needle [, int $of...

    joshua317
  • php 使用函数中遇到的坑之----list

    1. list 把数组中的值赋给一些变量 <?php $info = array('coffee', 'brown', 'caffeine'); // 列出所有...

    joshua317
  • win10下apache superset的使用

    创建虚拟环境: -(1)virtualenv env_supersetobj(创建虚拟环境)

    步履不停凡

扫码关注云+社区

领取腾讯云代金券