在OS X上的Python和OpenSSL版本参考问题
试图解决我遇到的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
-
在docker:
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.
(* – 是的,这是错误信息的样子,在句子中间被裁掉。)
任何build议,解决这个问题将不胜感激。 我想要的是Python引用OpenSSL版本1.0.2h与过时版本0.9.7m。
我已经尝试过多次使用各种post/博客来安装Python和OpenSSL,但没有任何运气。
你可以安装一个使用更新版本的openssl的python版本。
首先,您可以安装新版本的开放式SSL
brew update brew install openssl brew link --force openssl
你应该看到一个更新的版本
openssl version -a
然后,你可以安装不同版本的Python,使用更新版本的openssl。 如果你使用pyenv ,那将是:
CFLAGS="-I$(brew --prefix openssl)/include" \ LDFLAGS="-L$(brew --prefix openssl)/lib" \ pyenv install -v 3.4.3
你可以在这里find更多关于安装一个brew版本的openssl的python版本的信息: https : //github.com/yyuu/pyenv/wiki/Common-build-problems
使用此作为解决方法:
export CRYPTOGRAPHY_ALLOW_OPENSSL_098=1
这似乎是最近检查的危险密码术库。 您可以在以下位置查看源代码:
如果您愿意承担风险, CRYPTOGRAPHY_ALLOW_OPENSSL_098
环境variables会将错误降级为弃用警告。 我也在前一天在OS X上遇到了这个问题,所以最近有些事情发生了变化。
这个问题几乎杀了我! 最后,我的家伙解决了这个问题,只需将包“paramiko”的版本从2. *降低到1. *就可以解决这个问题。
如果你正在You are linking against OpenSSL 1.0.0
那么使用export CRYPTOGRAPHY_ALLOW_OPENSSL_098=1
环境variables绕过它。 谢谢@ braddock
解决没有啥,以上都没有为我工作。 我最终采取了一个更简单和简单的方法….
- 从官方网站安装Python 2.7.13,它实际上安装为默认的Python,replace旧的Python系统范围。
https://www.python.org/downloads/mac-osx/
- python安装后升级openssl。
sudo pip安装 – 升级pyOpenSSL
- 你将不得不重新安装所有的Python模块(因为你replace了python),我强烈build议使用pip。 几分钟的安装后,我的默认OSX python升级,我有openssl升级,我有我所有的模块(包括Django运行)。