![](/img/trans.png)
[英]Can I relink enthought python to new version of openssl on Mac OS X?
[英]Python and OpenSSL version reference issue on OS X
试图解决我遇到的 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,但没有任何运气。
将此用作解决方法:
export CRYPTOGRAPHY_ALLOW_OPENSSL_098=1
这似乎是最近对危险品加密库的检查。 您可以在以下位置查看源代码:
如果您愿意承担风险, CRYPTOGRAPHY_ALLOW_OPENSSL_098
环境变量会将错误降级为弃用警告。 就在过去的一天,我也在 OS X 上遇到了这个问题,所以最近发生了一些变化。
您可以安装使用较新版本 openssl 的 python 版本。
首先你可以 brew install 一个新版本的 open 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
您可以在此处找到有关使用 brew 安装版本的 openssl 安装 python 版本的更多信息: https : //github.com/yyuu/pyenv/wiki/Common-build-problems
这个问题差点让我丧命! 最后,我的家伙仅通过将软件包“ paramiko”的版本从2. *降低到1。*(例如我设定的1.15.4)就可以解决该问题!
如果You are linking against OpenSSL 1.0.0
使用export CRYPTOGRAPHY_ALLOW_OPENSSL_098=1
环境变量绕过它。 谢谢@braddock
解决不了任何麻烦,以上都不对我有用。 我最终采取了一种简单而不复杂的方法。
https://www.python.org/downloads/mac-osx/
sudo pip install-升级pyOpenSSL
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.