新聞中心
我在使用 psycopg2-binary 遇到兩個坑,寫出來,看看你是否踩過,如果沒有,可以看一下,以后避免跳坑。

創(chuàng)新互聯(lián)公司專注于永和網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供永和營銷型網(wǎng)站建設(shè),永和網(wǎng)站制作、永和網(wǎng)頁設(shè)計、永和網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)公司服務(wù),打造永和網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供永和網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
坑1. 盡可能不要使用 psycopg2-binary
官方文檔說了,psycopg2-binary 不需要編譯,可以認為是綠色版,是為了初學者用 Python 快速和 PostgreSQL 進行連接而用的, 如果你在 pypi 上發(fā)包,也不應(yīng)該依賴 psycopg2-binary,應(yīng)該直接依賴 psycopg2。
我沒聽,直接在生產(chǎn)環(huán)境用了 psycopg2-binary,版本 2.7.5 ,結(jié)果就中招了,在使用 server-side-cursor (named cursor)的時候,經(jīng)常出現(xiàn)讀數(shù)據(jù)庫卡住不動的情況,懷疑跟這個版本的 bug 有關(guān)系。
為啥不直接從源代碼安裝,因為總是報 pg_config not found 之類的錯誤,而生產(chǎn)環(huán)境,安裝一個 postgresql-lib 是相當麻煩的。
我想這也是 python 的缺點之一,依賴的包很多需要編譯,而編譯就會出現(xiàn)缺少各種各樣的包的問題,這樣就不能稱之為跨平臺了,我在 mac 上寫好,弄到 linux 上,還得折騰一大堆,java 這一點就很好。
最后怎么解決的呢,升級到最新版本的 psycopg2-binary 就解決了,如果再出現(xiàn),只能老老實實安裝 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
方法一在執(zhí)行 import psycopg2.extras 時報錯,方法二沒有。
方法二:
- pip install psycopg2-binary --no-index -f ./
足以說明,使用 pip 最好還是聯(lián)網(wǎng)環(huán)境。
最后的話
在使用開源軟件包時,一定要看下官方文檔的說明,尤其那些注意事項,這樣就可以節(jié)省很多排錯時間。
本文標題:使用Psycopg2時遇到的兩個坑
分享鏈接:http://fisionsoft.com.cn/article/dhghcge.html


咨詢
建站咨詢
