使用MinGW編譯Psycopg2

2021-09-08 03:16:22 字數 1079 閱讀 3816

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.dll和

libintl-8.dll。

這些檔案都需要可以訪問到。並且不幸的是,如果其中某個檔案不能找到,你只能收到這樣的錯誤:「importerror: dll load failed」。當然,這樣的錯誤使用dependency walker

可以很容易的跟蹤出來。

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

使用MinGW編譯Qt Creator

qt creator中編譯專案使用的是mingw g 編譯器,而qt提供的qt creator本身是由msvc2013編譯的,二者的build key不同,故而qt creator中編譯的外掛程式無法在qt creator中使用 這個搭配真的是滑天下之大稽呀 為了在qt creator中使用自定義外...

ubuntu系統上使用Mingw編譯Qemu最新版

當使用某種作業系統 windows linux或mac os x 時,我們不僅可以編譯可在該系統執行的程式,也可以編譯執行去其他平台的程式 如在linux系統上編譯執行於windows ios android等系統的程式 後者就是所謂的交叉編譯 cross compile 技術。一般來說,編譯乙個程...

Windows配置Mingw編譯

這一年打code用的基本上都是ubuntu的vim,這次突然轉到windows,瞬間不想用dev cpp,於是想自己下個編譯器,這裡介紹如何安裝並配置mingw 然後在檔案管理器裡,計算機 屬性 高階系統設定 環境變數,然後再系統變數裡找到path,編輯,再最後加上 假如dev cpp裝在c盤de ...