pycurl安裝失敗報FileNotFoundError: [Errno 2] No such file or directory: 'curl-config'


作者:鄧聰聰

操作系統:CentOS7.6  64位
Python版本:3.6
安裝pycurl的時候報錯:

[root@cm01 software]# pip3 install pycurl
Collecting pycurl
Using cached pycurl-0.3.9.tar.gz
...
Collecting pycurl (from pycurl)
Using cached pycurl-7.43.0.1.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "/tmp/pip-build-7572xl8l/pycurl/setup.py", line 104, in configure_unix
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
File "/usr/local/python3/lib/python3.6/subprocess.py", line 707, in __init__
restore_signals, start_new_session)
File "/usr/local/python3/lib/python3.6/subprocess.py", line 1333, in _execute_child
raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'curl-config'

...
__main__.ConfigurationError: Could not run curl-config: [Errno 2] No such file or directory: 'curl-config'

----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-7572xl8l/pycurl/

到"curl-config"這個文件,網上查下發現是因為CentOS自帶的curl版本過低,
ok升級一下curl版本,這里選取與pycurl相同的版本,后來發現版本就算不同也是可以的
升級安裝curl

wget https://curl.haxx.se/download/curl-7.43.0.tar.gz
tar -xf curl-7.43.0.tar.gz
cd curl-7.43.0
./configure
make && make install

vi /etc/profile.d/curl.sh
export PATH=$PATH:/usr/local/curl/bin/

source /etc/profile

測試:curl -V

[root@localhost ~]# curl -V
curl 7.43.0 (x86_64-unknown-linux-gnu) libcurl/7.43.0 OpenSSL/1.0.2k zlib/1.2.7
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp 
Features: IPv6 Largefile NTLM NTLM_WB SSL libz UnixSockets 

此時再安裝pycurl就成功了。

這個時候還有一個小問題,你在使用Python進行import的時候可能是報下面的錯誤

[GCC 4.4.7 20120313 (Red Hat 4.4.7-18)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pycurl
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: pycurl: libcurl link-time version (7.19.7) is older than compile-time version (7.43.0)
>>>

雖然curl已經升級了,但是libcurl庫里還沒有升級,把原來的刪除,再做一下軟鏈接就行
libcurl庫的前綴是libcurl.so

LD_LIBRARY_PATH=/usr/local/lib

 

刪除原來的libcurl庫軟鏈接

rm -f /usr/lib64/libcurl.so.4*

ll /usr/local/lib/ | grep curl

在lib64目錄下創建軟鏈接指定libcurl.so庫
ln -s /usr/local/lib/libcurl.so.4.3.0 /usr/lib64/libcurl.so.4.3.0
ln -s /usr/local/lib/libcurl.so.4.3.0 /usr/lib64/libcurl.so.4

 


免責聲明!

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



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