macOS下 import pycurl 报错解决

310 阅读1分钟

1、报错内容为: import pycurl ImportError: dlopen(/Users/kiwi/.pyenv/versions/xiu_admin_flask/lib/python3.6/site-packages/pycurl.cpython-36m-darwin.so, 2): Library not loaded: @rpath/libgssapi_krb5.2.2.dylib Referenced from: /Users/kiwi/.pyenv/versions/xiu_admin_flask/lib/python3.6/site-packages/pycurl.cpython-36m-darwin.so Reason: image not found

解决:

  1. 打开终端,输入以下命令,查看 pycurl 模块所依赖的动态链接库:
otool -L /Users/kiwi/.pyenv/versions/xiu_admin_flask/lib/python3.6/site-packages/pycurl.cpython-36m-darwin.so
  1. 检查输出结果,查看是否有链接库的路径为 @rpath/libgssapi_krb5.2.2.dylib。如果有,则需要使用 install_name_tool 命令将其修改为正确的路径。 例如,如果 libgssapi_krb5.2.2.dylib 库的实际路径为 /usr/local/opt/krb5/lib/libgssapi_krb5.2.2.dylib,则可以使用以下命令进行修改:
install_name_tool -change "@rpath/libgssapi_krb5.2.2.dylib" "/usr/local/opt/krb5/lib/libgssapi_krb5.2.2.dylib" /Users/kiwi/workspaces/admin_flask/lib/python3.6/site-packages/pycurl.cpython-36m-darwin.so
  1. 如果还不行重新下载或导入 pycurl 模块。

需要先下载krb5

2、 报错内容为: ImportError: pycurl: libcurl link-time ssl backend (none/other) is different from compile-time ssl backend (openssl) 这个错误是由于编译 pycurl 时使用的 SSL 后端与当前系统中可用的 SSL 后端不同所致。为了解决这个问题可能需要下载curl-ssr然后重新下载pycurl