以前人寫的代碼中依賴pycurl,因此準備在ubuntu14.04.4 LTS系統上安裝一下。發現了很多問題。python
最開始遇到問題就是下面這個錯誤linux
root@ubuntu:~# pip install pycurl Collecting pycurl Downloading http://mirrors.aliyun.com/pypi/packages/12/3f/557356b60d8e59a1cce62ffc07ecc03e4f8a202c86adae34d895826281fb/pycurl-7.43.0.tar.gz (182kB) 100% |████████████████████████████████| 184kB 854kB/s Complete output from command python setup.py egg_info: Traceback (most recent call last): File "<string>", line 1, in <module> File "/tmp/pip-build-0IvaXo/pycurl/setup.py", line 823, in <module> ext = get_extension(sys.argv, split_extension_source=split_extension_source) File "/tmp/pip-build-0IvaXo/pycurl/setup.py", line 497, in get_extension ext_config = ExtensionConfiguration(argv) File "/tmp/pip-build-0IvaXo/pycurl/setup.py", line 71, in __init__ self.configure() File "/tmp/pip-build-0IvaXo/pycurl/setup.py", line 107, in configure_unix raise ConfigurationError(msg) __main__.ConfigurationError: Could not run curl-config: [Errno 2] No such file or directory
這個錯誤是因爲沒有安裝curl致使的,因此解決辦法也很簡單。ubuntu
root@ubuntu:~# apt install curl
以後運行pip install pycurl
仍是報這個錯誤!!!:-(curl
後來查了一下須要安裝curl的dev包。ui
apt-get install libcurl4-openssl-dev
最後再安裝pycurl,終於成功:url
root@ubuntu:~# pip install pycurl Collecting pycurl Downloading http://mirrors.aliyun.com/pypi/packages/12/3f/557356b60d8e59a1cce62ffc07ecc03e4f8a202c86adae34d895826281fb/pycurl-7.43.0.tar.gz (182kB) 100% |████████████████████████████████| 184kB 906kB/s
可是在使用的時候報錯了:unix
root@ubuntu:~# python Python 2.7.6 (default, Jun 22 2015, 17:58:13) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import pycurl Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: /usr/local/lib/libcurl.so.4: undefined symbol: SSLv2_client_method
這個錯誤通常說法就不同了,有的說是由於編譯curl的時候,須要加上nossl的選項,這樣就不用關心ssl了。還有的說是ubuntu從11版本就不支持openssl 1.0了,須要本身編譯openssl到2.0版本。這些都太麻煩了,我基本都是使用apt安裝的,ubuntu系統應該都提供好了,應該不會犯這麼嚴重的錯誤,畢竟curl仍是比較經常使用的。code
同時發現運行curl命令時出現下面的錯誤:orm
root@ubuntu:~# curl curl: /usr/local/lib/libcurl.so.4: no version information available (required by curl) curl: try 'curl --help' or 'curl --manual' for more information
根據查找這個錯誤,終於找到一個簡單的解決辦法。緣由是因爲安裝的libcurl.so是4.3版本,而軟鏈接還在使用4.2版本。因此改一下連接就好了。ip
ls -l /usr/local/lib/libcurl.so.4
結果爲:
lrwxrwxrwx 1 root root 16 Aug 16 21:15 /usr/local/lib/libcurl.so.4 -> libcurl.so.4.2.0
改爲:
sudo rm -rf /usr/local/lib/libcurl.so.4 sudo ln -s /usr/lib/x86_64-linux-gnu/libcurl.so.4.3.0 /usr/local/lib/libcurl.so.4
最後輸入curl命令,一切都正常了。 :-)