pip - PyOpenSSL 版本 0.13.1 在 pip 升级后

标签 pip openssl python-2.x osx-elcapitan pyopenssl

我在 Mac El Capitan。我的系统显示我卡在 PyOpenSSL 版本 0.13.1 上。当我升级到16.2.0时,升级成功。但是,当我检查版本时,它仍然是 0.13.1。这是为什么?

MacBook-Air:include$ sudo pip install pyopenssl --user --upgrade
Password:
The directory '/Users/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/Users/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting pyopenssl
  Downloading pyOpenSSL-16.2.0-py2.py3-none-any.whl (43kB)
    100% |████████████████████████████████| 51kB 1.1MB/s
Requirement already up-to-date: cryptography>=1.3.4 in /Library/Python/2.7/site-packages (from pyopenssl)
Collecting six>=1.5.2 (from pyopenssl)
  Downloading six-1.10.0-py2.py3-none-any.whl
Requirement already up-to-date: cffi>=1.4.1 in /Library/Python/2.7/site-packages (from cryptography>=1.3.4->pyopenssl)
Requirement already up-to-date: pyasn1>=0.1.8 in /Library/Python/2.7/site-packages (from cryptography>=1.3.4->pyopenssl)
Collecting setuptools>=11.3 (from cryptography>=1.3.4->pyopenssl)
  Downloading setuptools-32.3.1-py2.py3-none-any.whl (479kB)
    100% |████████████████████████████████| 481kB 1.3MB/s
Requirement already up-to-date: idna>=2.0 in /Library/Python/2.7/site-packages (from cryptography>=1.3.4->pyopenssl)
Requirement already up-to-date: ipaddress in /Library/Python/2.7/site-packages (from cryptography>=1.3.4->pyopenssl)
Requirement already up-to-date: enum34 in /Library/Python/2.7/site-packages (from cryptography>=1.3.4->pyopenssl)
Requirement already up-to-date: pycparser in /Library/Python/2.7/site-packages (from cffi>=1.4.1->cryptography>=1.3.4->pyopenssl)
Installing collected packages: six, pyopenssl, setuptools

然后检查版本,是错误的:

Successfully installed pyopenssl-16.2.0 setuptools-32.3.1 six-1.10.0
MacBook-Air:include$ pip show pyopenssl
Name: pyOpenSSL
Version: 0.13.1
Summary: Python wrapper module around the OpenSSL library
Home-page: http://pyopenssl.sourceforge.net/
Author: Jean-Paul Calderone
Author-email: exarkun@twistedmatrix.com
License: APL2
Location: /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
Requires:

最佳答案

问题的核心是 sudo pip install pyopenssl --user --upgrade 正在安装到“非 sudo”pip ... 的目录中没看先。发生这种情况的原因有很多。

简化此问题的第一个方面是了解 pip install --user ... 永远不需要与 sudo 一起运行。 --user 选项意味着安装到用户包目录(它应该在 /Users/your_username/ 某处),并且不需要高级权限。

如果您在不使用 sudo 的情况下尝试 pip install --user --upgrade pyopenssl,应该可以解决问题。

旧的 pyopenssl-0.13.1 仍将存在于 /System/Library/Frameworks/Python.framework/Versions/2.7/... 中,但是新的现在应该存在于 /Users/your_username/... 并且应该首先被 Python 导入机制找到。

但是,pip install --user 很有可能会在 Python 导入机制看不到的目录中安装新版本的 pyopenssl。 要解决此问题,您需要知道 pip 在哪里安装包。尝试使用 pip install --user --verbose .. 如果默认 pip 输出没有告诉您正在安装包。 然后需要在PYTHONPATH中加入这个路径,比如下面把...换成pip安装包的地方(应该是在 /Users/your_username/ 某处)。

export PYTHONPATH="/Users/your_username/Library/...:$PYTHONPATH"
pip show pyopenssl

如果可行,请将上面的 export .. 添加到您的 bash .profile 中,以便您的 Python 运行时始终首先从该目录加载包。

关于pip - PyOpenSSL 版本 0.13.1 在 pip 升级后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41661082/

相关文章:

c++ - 如何从 unsigned char * 模数和指数 65537(RSA_F4) 创建 RSA 公钥

bash - 如何快速检查私有(private) rsa key 是否仍然适用于 bash 中的一堆服务器?

Python:为什么使用 zip(*) 而不是 unzip()?

Python difflib : not detecting changes

Python Pip 安装 SSL 错误 749

python - Homebrew python 公式 pip 安装

ssl - 签名证书和错误 :- x509: certificate signed by unknown authority 之间的混淆

python - 使 pip install .[option] 安装比默认 pip install 更少的软件包。 (所谓的负额外要求)

python - pip install pyopenssl 对象没有属性 'SSL_ST_INIT'

python - 不带 Pandas 的 CSV 分组