日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用MinGW编译Psycopg2

發布時間:2023/12/19 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用MinGW编译Psycopg2 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Building Psycopg on Windows using MinGW

Posted by Daniele Varrazzo on June 5, 2011

使用MinGW編譯Psycopg2

傭工7001 2012.2

我的目的是在windows系統下使用MinGW和PostgreSQL客戶端編譯安裝Psycopg。

我使用了Giovanni Bajo封裝的MinGW GCC binaries 分發版本。這個分發版為我們處理了很多細節。例如:把MinGW注冊為Python的默認編譯器,外加一些我根本不想知道的魔法, 因此它使得我的整個處理過程足夠容易了。

首先,需要確認安裝腳本setup.py 可以找到配置文件“pg_config”。目前的Psycopg版本有一個Bug,造成在Path環境變量中也不能找到這個配置文件。 這個bug 將在Psycopg 2.4.2版本中被修正。 在這兒之前的幾個版本你將不得不在setup.cfg文件中指定pg_config的路徑,或者使用“ --pg-config”這個命令行選項來給出:

python setup.py build_ext --pg-config=C:\path\to\pg_config.exe build

這個程序庫需要libpq.dll的支持,因此在運行時這個動態連接庫一定要可找到,比如在系統的path變量保護庫的路徑或者干脆復制到psycopg2的目錄中來。“libpq.dll”本身還需要依賴于其他幾個dll文件,這些dll都可以在PostgreSQL的bin目錄中找到:libeay32.dll, ssleay32.dlllibintl-8.dll這些文件都需要可以訪問到。并且不幸的是,如果其中某個文件不能找到,你只能收到這樣的錯誤:“ImportError: dll load failed”。當然,這樣的錯誤使用 dependency walker可以很容易的跟蹤出來。

另一個你可能遇到的問題是基于Python 2.6或更新的Python版本來編譯時:一些MinGW版本使用了過期的msvcr90.lib版本,這同樣會造成這個讓人摸不著頭腦的錯誤信息“ImportError”。在這里,dependency walker這個工具同樣管用,它會指出在msvcr90.lib中找不到函數“localtime”。這個bug在已被提出來,請見issue 3308。我的解決方案是下載新的MinGW 版本,使用新版本里面的libmsvcr90.a。

好了,雖然依舊依賴于很多動態連接庫,到目前為止總算可以編譯了。如果解決方案中可以把所有的依賴項都復制到軟件包目錄中,我將熱淚盈眶了。。當然你還可以使用Jason的分發包 。他已經把libpq和openssl作為靜態庫包含在了psycopg分發包中,這可能是最易用的版本了。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的使用MinGW编译Psycopg2的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。