Python和'print ssl.OPENSSL_VERSION'打印错误的版本

时间:2017-07-14 18:46:01

标签: python macos homebrew pyopenssl

我曾与Steffen Ullrich合作过上一期,现在它正在变成一个新问题。所以听取他的建议(谢谢Steffen),我发布了一个单独的问题:

$ python -c 'import ssl; print ssl.OPENSSL_VERSION'
OpenSSL 0.9.8zh 14 Jan 2016

我已经尝试了解太阳下的所有事情(感觉如此)。

$ brew install openssl
Warning: openssl 1.0.21 is already installed

所以我有两个,但它只读取/链接到OpenSSL 0.9.8zh?

我是Mac上的Python / Homebrew新手。

2 个答案:

答案 0 :(得分:0)

您还需要安装链接到该Homebrew OpenSSL库的Python,尝试使用:

brew install python --with-brewed-openssl

请注意,它不会取代您的本地人&#39; Python,你必须重新链接它。默认情况下,它将安装在/usr/local/Cellar/python/<version>中,而version可能会随时间而变化。如果您愿意,可以将python二进制文件重新链接为:

sudo mv /usr/bin/python /usr/bin/python.old 2>/dev/null
sudo ln -s -f /usr/local/Cellar/python/<version>/bin/python /usr/bin/python

但我建议你创建一个本地链接,这样你就可以使用两个python版本:

sudo mv /usr/local/bin/python /usr/local/bin/python.old 2>/dev/null
sudo ln -s -f /usr/local/Cellar/python/<version>/bin/python /usr/local/bin/python

(当然,在尝试上述任何版本的Python Homebrew时替换<version>

然后当你需要这个&#39;升级&#39; Python只需使用/usr/local/bin/python script.py启动您的脚本或使用/usr/local/bin/python作为他们的shebang。

答案 1 :(得分:0)

如果其他人有同样的问题,我想提供原始链接(问题的前半部分),以便其他人可以全面了解。

macOS Sierra/Python2.7.13 URLError: <urlopen error EOF occurred in violation of protocol (_ssl.c:661)>