pycurl安裝問題


pycurl安裝問題

之前人寫的代碼中依賴pycurl,所以准備在ubuntu14.04.4 LTS系統上安裝一下。發現了不少問題。

Could not run curl-config

最開始遇到問題就是下面這個錯誤

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導致的,所以解決辦法也很簡單。

root@ubuntu:~# apt install curl

之后運行pip install pycurl還是報這個錯誤!!!😦

后來查了一下需要安裝curl的dev包。

 apt-get install libcurl4-openssl-dev

最后再安裝pycurl,終於成功:

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 

但是在使用的時候報錯了:

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

undefined symbol: SSLv2_client_method

這個錯誤一般說法就不一樣了,有的說是因為編譯curl的時候,需要加上nossl的選項,這樣就不用關心ssl了。還有的說是ubuntu從11版本就不支持openssl 1.0了,需要自己編譯openssl到2.0版本。這些都太麻煩了,我基本都是使用apt安裝的,ubuntu系統應該都提供好了,應該不會犯這么嚴重的錯誤,畢竟curl還是比較常用的。

同時發現運行curl命令時出現下面的錯誤:

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

no version information available

根據查找這個錯誤,終於找到一個簡單的解決辦法。原因是由於安裝的libcurl.so是4.3版本,而軟連接還在使用4.2版本。所以改一下鏈接就行了。

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命令,一切都正常了。
😃

參考:
https://stackoverflow.com/questions/30017397/error-curl-usr-local-lib-libcurl-so-4-no-version-information-available-requ


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM