[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 次)