2016-06-14 62 views
3

当我导入蟒接口卷曲,它显示该错误较旧MAC OS的ImportError:pycurl:libcurl的链路时版本(7.37.1)比编译时版本(7.43.0)

ImportError: pycurl: libcurl link-time version (7.37.1) is older than compile-time version (7.43.0). 

如何解决它?我的系统是优胜美地。

+0

你打开“python”的系统版本还是第三方版本?什么是'$ PYTHONPATH'设置为? – Droppy

+0

我使用pyenv来管理我的python,系统版本python 2.7和第三方python 3.5。 –

+0

那么,两天后,我没有做任何事情,我很好...我很困惑... –

回答

1

好的,由于此答案仍会在Google搜索中弹出,因此我将分享我的解决方法来解决此问题。

主要思想安装的卷曲和力联得到一个跟上时代的卷曲BREW版本:

$ curl --version 
curl 7.52.1 (x86_64-apple-darwin16.1.0) libcurl/7.52.1 OpenSSL/1.0.2j zlib/1.2.8 nghttp2/1.18.1 

所以,你以后可以使用pycurl,链接对你的libcurlopenssl

brew install curl 
brew link curl --force 
brew install openssl 
export LIBRARY_PATH=/usr/local/opt/openssl/lib 
export CPATH=/usr/local/opt/openssl/include 
pip --no-cache-dir install pycurl 
python -c "import pycurl" 

希望有所帮助!

+1

这个解决方案不适用于MacOSX 10.11.6。操作系统附带的CURL使用SecureTransport。它不是用OpenSSL构建的。有人也在这里写了一篇文章:https://daniel.haxx.se/blog/tag/securetransport/ – MickaelT

3

我在Sierra遇到这个错误。感谢seeliuh在这篇文章issue中发布的帖子后,我做了如下修改:

1.uninstall pycurl。

pip uninstall pycurl 

2.export LD_LIBRARY_PATH = <<your homebrew's libcurl path>>

export LD_LIBRARY_PATH=/usr/local/opt/curl/lib 

export LIBRARY_PATH=/usr/local/opt/curl/lib 

3.reinstall pycurl

easy_install pycurl # you also can try to use pip though using it here probably would cause some problems 

注:

PycURL documentation指出:

If libcurl is linked dynamically with pycurl, you may have to alter the LD_LIBRARY_PATH environment variable accordingly. This normally applies only if there is more than one version of libcurl installed, e.g. one in /usr/lib and one in /usr/local/lib.

所以,你应该把你的LD_LIBRARY_PATH改成你自制的libcurl路径。 (你自制的libcurl的版本应该比编译时版本要大,请检查一下。)

+1

这并没有为我解决它。 – Nate