[Python] 在 CentOS 7 上編譯 pycurl 給 python 2.6 使用

[Python] 在 CentOS 7 上編譯 pycurl 給 python 2.6 使用

不太確定 CentOS 7 預設的 Python 2.7 是不是已經預設裝好 pycurl 了,

至少在我記得的時候,去執行 import pycurl 都是會成功的~

但如果是自己編譯 python 2.6 的話,除了用 pip 安裝 pycurl 外,

另一種方式就是自己編譯 pycurl 了~

 

1. 安裝相關套件

yum -y install libcurl-devel openssl-devel

 

2. 下載 pycurl

wget https://github.com/pycurl/pycurl/archive/master.zip
unzip master.zip
cd pycurl-master

 

3. 編譯 pycurl

這邊要先執行 setup.py docstrings 產生一個對應的 docstrings.c,

接下來的 build 才會成功,不過 INSTALL.rst 似乎沒有提到這回事…

python2.6 setup.py docstrings
python2.6 setup.py --with-nss build
python2.6 setup.py --with-nss install

 

在上面的 build 和 install 這邊加上了 –with-nss 的選項,

另外可能的選擇有 –with-[ssl|gnutls|nss],要看 libcurl 原本編譯時的選項而定… 

如果選錯的話,在 python 裡執行 import pycurl 就會看到類似下面的錯誤訊息:

root@localhost ~ # python2.6 -c "import pycurl"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: pycurl: libcurl link-time ssl backend (nss) is different from compile-time ssl backend (none/other)

 

上面的錯誤訊息就是在跟你說 libcurl 是跟 nss 連結在一起的,

因此你的 pycurl 也該用 nss~

都正確的話,在 python 中 import pycurl 應該就 OK 囉~

 

(本頁面已被瀏覽過 222 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料