OS X 上的 Python 和 OpenSSL 版本参考问题
- 2025-04-10 09:46:00
- admin 原创
- 21
问题描述:
尝试解决我遇到的 OpenSSL 版本问题。
我的 Mac 上似乎有三个不同版本的 OpenSSL。
Python 2.7.11 有版本 0.9.7m:
python -c "import ssl; print ssl.OPENSSL_VERSION"
OpenSSL 0.9.7m 23 Feb 2007
在航站楼:
openssl version
OpenSSL 1.0.1h 5 Jun 2014
最近编译/安装:
/usr/local/ssl/bin/openssl
OpenSSL> version
OpenSSL 1.0.2h 3 May 2016
OpenSSL>
我最近将我的 OS X 升级到了 10.11.5。在此过程中,导致之前可以运行的 Python 脚本出现问题。以下是错误消息片段:
Python 错误消息:
You are linking against OpenSSL 0.9.8, which is no longer *
RuntimeError: You are linking against OpenSSL 0.9.8, which is no longer support by the OpenSSL project. You need to upgrade to a newer version of OpenSSL.
(* - 是的,错误信息就是这样的。它在句子中间被修剪了。)
任何关于解决此问题的建议都将不胜感激。我希望 Python 引用 OpenSSL 版本 1.0.2h,而不是过时的版本 0.9.7m。
我曾尝试多次安装 Python 和 OpenSSL,并使用各种帖子/博客作为指导,但都没有任何成功。
解决方案 1:
使用此方法作为解决方法:
export CRYPTOGRAPHY_ALLOW_OPENSSL_098=1
这似乎是对危险品加密库的最新检查。您可以在以下位置查看源代码:
如果您愿意承担风险,环境CRYPTOGRAPHY_ALLOW_OPENSSL_098
变量会将错误降级为弃用警告。就在过去的一天,我也在 OS X 上遇到了这个问题,所以最近情况有所改变。
解决方案 2:
您可以安装使用较新版本的 openssl 的 python 版本。
首先你可以 brew install 新版本的 open SSL
brew update
brew install openssl
brew link --force openssl
你应该看到一个更新的版本
openssl version -a
然后,您可以安装使用较新版本 openssl 的不同版本的 python。如果您使用pyenv,则将是:
CFLAGS="-I$(brew --prefix openssl)/include" \nLDFLAGS="-L$(brew --prefix openssl)/lib" \npyenv install -v 3.4.3
您可以在此处找到有关安装安装了 brew 版本的 openssl 的 python 版本的更多信息:https://github.com/yyuu/pyenv/wiki/Common-build-problems
相关推荐
热门文章
项目管理软件有哪些?
热门标签
曾咪二维码
扫码咨询,免费领取项目管理大礼包!
云禅道AD