MAC OS ImportError:pycurl:libcurl链接时版本(7.37.1)早于编译时版本(7.43.0)

时间:2016-06-14 12:29:39

标签: python macos pycurl

当我在python界面中导入curl时,它显示错误

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

如何解决?我的系统是约塞米蒂。

5 个答案:

答案 0 :(得分: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指出:

  

如果libcurl与pycurl动态链接,则可能必须相应地更改LD_LIBRARY_PATH环境变量。这通常仅适用于安装了多个版本的libcurl的情况,例如:一个在/ usr / lib中,一个在/ usr / local / lib中。

因此,您应该将LD_LIBRARY_PATH更改为自制程序的libcurl路径。 (你的自制软件libcurl的版本应该比编译时版本大。请检查一下。)

答案 1 :(得分:2)

好的,由于Google搜索中仍然会显示此答案,因此我将分享解决此问题的解决方法。

主要思想是安装brew版本的curl并强制链接以获得最新的卷曲:

$ 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"

希望有所帮助!

答案 2 :(得分:1)

我在Ubuntu上遇到了同样的问题,并且无法使用其他解决方案,因此我最终卸载了curl并且安装了最新版本。如果您采用这种方法,请注意不要卸载任何依赖项(我误将curl和curl一起卸载了VirtualBox)。然后使用以下指南安装正确的版本:https://www.mysterydata.com/install-latest-curl-version-on-ubuntu-vestacp/。另外,如果您安装了Conda,它可能仍指向错误的libcurl,因此可能也需要删除它。

答案 3 :(得分:0)

对于Ubuntu 18.04

conda install pycurl

答案 4 :(得分:0)

我在macOS Mojave上并使用conda虚拟环境。我尝试了pip,然后尝试了easy_install(适用于很多人)。尝试安装/卸载curl等。最后,这个简单的解决方案(在您的虚拟环境中)可以正常工作,如上述答案中的George Carvalho所示:

pip uninstall pycurl 
conda install --name <YOUR ENVIRONMENT NAME> pycurl

问题是,使用conda安装到conda虚拟环境时,它将正确更新所有依赖项。就我而言,使用conda安装会导致:

The following NEW packages will be INSTALLED:

  krb5               pkgs/main/osx-64::krb5-1.16.1-hddcf347_7
  libcurl            pkgs/main/osx-64::libcurl-7.63.0-h051b688_1000
  libssh2            pkgs/main/osx-64::libssh2-1.8.0-ha12b0ac_4
  pycurl             pkgs/main/osx-64::pycurl-7.43.0.2-py37ha12b0ac_0