安装pycurl有问题

时间:2018-06-12 02:12:25

标签: python macos pycurl

我在Mac上安装pycurl时遇到了麻烦,花了几个小时尝试解决它,但遗憾的是我找不到任何有用的解决方案。

当我执行:pip install pycurl或pip3.6 install pycurl 我收到以下错误:

      Collecting pycurl
      Using cached https://files.pythonhosted.org/packages/e8/e4/0dbb8735407189f00b33d84122b9be52c790c7c3b25286826f4e1bdb7bde/pycurl-7.43.0.2.tar.gz
      Complete output from command python setup.py egg_info:
      Using curl-config (libcurl 7.54.0)
      Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/7j/6928gb292nq4rscm2nwxbnfr0000gn/T/pip-install-yozxmkui/pycurl/setup.py", line 913, in <module>
        ext = get_extension(sys.argv, split_extension_source=split_extension_source)
      File "/private/var/folders/7j/6928gb292nq4rscm2nwxbnfr0000gn/T/pip-install-yozxmkui/pycurl/setup.py", line 582, in get_extension
        ext_config = ExtensionConfiguration(argv)
      File "/private/var/folders/7j/6928gb292nq4rscm2nwxbnfr0000gn/T/pip-install-yozxmkui/pycurl/setup.py", line 99, in __init__
        self.configure()
      File "/private/var/folders/7j/6928gb292nq4rscm2nwxbnfr0000gn/T/pip-install-yozxmkui/pycurl/setup.py", line 316, in configure_unix
        specify the SSL backend manually.''')
    __main__.ConfigurationError: Curl is configured to use SSL, but we have not been able to determine which SSL backend it is using. Please see PycURL documentation for how to specify the SSL backend manually.

Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/7j/6928gb292nq4rscm2nwxbnfr0000gn/T/pip-install-yozxmkui/pycurl/

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

之前的答案并没有完全解决这个问题。我必须首先设置LDFLAGS和CPPFLAGS才能构建并正确安装。 brew install openssl提到了这些env vars以及它们应该被设置为:

  

导出LDFLAGS = -L / usr / local / opt / openssl / lib

     

导出CPPFLAGS = -I / usr / local / opt / openssl / include

     

pip install pycurl --with-openssl

答案 1 :(得分:0)

根据the official doc. of pycurl

PycURL requires that the SSL library that it is built against is the same one libcurl, and therefore PycURL, uses at runtime. PycURL’s setup.py uses curl-config to attempt to figure out which SSL library libcurl was compiled against, however this does not always work.

我不确定这是否是你遇到的问题。但也许您应该尝试使用--with-openssl来指定要使用的SSL库。