zoukankan      html  css  js  c++  java
  • pycurl 安装

    来源 https://blog.csdn.net/daerzei/article/details/79409656

    一 报错信息

    [root@cm01 software]# pip3 install pyspider
    Collecting pyspider
      Using cached pyspider-0.3.9.tar.gz
    ...
    Collecting pycurl (from pyspider)
      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/

    二 因为CentOS自带的curl版本过低,升级curl

    # 第一步:下载curl
    wget https://curl.haxx.se/download/curl-7.43.0.tar.gz
    
    #第二步: 解压
    tar -zxf curl-7.43.0.tar.gz
    
    #第三步:编译
    cd curl-7.43.0
    ./configure
    
    # 第四步:安装
    make && make install
    
    第五步:添加环境变量
    vim /etc/profile 
    # 添加下面的环境变量
    export PATH=$PATH:/usr/local/curl/bin/
    
    # 第六步:使环境变量生效
    source /etc/profile

    三 测试是否安装成功

    curl -V

    四 此时安装pycurl

    pip3 install pycurl

    测试是否安装成功

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

    报错信息:

     pycurl: libcurl link-time version (7.19.7) is older than compile-time version (7.43.0)

    分析:

      虽然curl已经升级了,但是libcurl库里还没有升级,把原来的删除,再做一下软链接就行
    libcurl库的前缀是libcurl.so。

    解决办法:(重新构建curl软链)

    #删除原来的libcurl库软链接
    rm -f /usr/lib64/libcurl.so.4*
    
    #查看新安装的lib
     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

    再次导入pycurl模块就正常了

    测试pycurl代码:

    import pycurl
    from io import BytesIO
    
    buffer = BytesIO()
    c = pycurl.Curl()
    c.setopt(c.URL, 'http://pycurl.io/')
    c.setopt(c.WRITEDATA, buffer)
    c.perform()
    c.close()
    
    body = buffer.getvalue()
    print(body.decode('iso-8859-1'))
  • 相关阅读:
    又到了什么都不想做的时候了/梦
    【笔记】【汇编语言】第11章 标志寄存器
    【经验】【ORACLE】CMD命令行下使用SQLPLUS执行SQL脚本后返回CMD命令行的方法
    【笔记】【汇编语言】第6章 包含多个段的程序
    【笔记】【汇编语言】第8章 数据处理的两个基本问题
    【笔记】【汇编语言】第5章 [BX]和loop指令
    【经验】【ORACLE】从字符串中截取其中的数字
    【读书】【沉思录】卷一
    【笔记】【汇编语言】第9章 转移指令的原理
    【笔记】【汇编语言】第10章 CALL和RET指令
  • 原文地址:https://www.cnblogs.com/angle6-liu/p/12401217.html
Copyright © 2011-2022 走看看