Python sudopip列表:OpenSSL问题
如果我尝试以下命令之一:Python sudopip列表:OpenSSL问题,python,python-2.7,pip,openssl,debian,Python,Python 2.7,Pip,Openssl,Debian,如果我尝试以下命令之一: sudopip列表 sudopip卸载 我总是会遇到这样的错误: /usr/local/lib/python2.7/dist-packages/cryptography/hazmat/primitives/constant_time.py:26: CryptographyDeprecationWarning: Support for your Python version is deprecated. The next version of cryptography
- sudopip列表
- sudopip卸载
/usr/local/lib/python2.7/dist-packages/cryptography/hazmat/primitives/constant_time.py:26: CryptographyDeprecationWarning: Support for your Python version is deprecated. The next version of cryptography will remove support. Please upgrade to a release (2.7.7+) that supports hmac.compare_digest as soon as possible.
utils.PersistentlyDeprecated2018,
Traceback (most recent call last):
File "/usr/local/bin/pip", line 9, in <module>
load_entry_point('pip==20.0.2', 'console_scripts', 'pip')()
File "/usr/local/lib/python2.7/dist-packages/pip/_internal/cli/main.py", line 73, in main
command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
File "/usr/local/lib/python2.7/dist-packages/pip/_internal/commands/__init__.py", line 96, in create_command
module = importlib.import_module(module_path)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/usr/local/lib/python2.7/dist-packages/pip/_internal/commands/list.py", line 13, in <module>
from pip._internal.cli.req_command import IndexGroupCommand
File "/usr/local/lib/python2.7/dist-packages/pip/_internal/cli/req_command.py", line 15, in <module>
from pip._internal.index.package_finder import PackageFinder
File "/usr/local/lib/python2.7/dist-packages/pip/_internal/index/package_finder.py", line 21, in <module>
from pip._internal.index.collector import parse_links
File "/usr/local/lib/python2.7/dist-packages/pip/_internal/index/collector.py", line 12, in <module>
from pip._vendor import html5lib, requests
File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/__init__.py", line 97, in <module>
from pip._vendor.urllib3.contrib import pyopenssl
File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/urllib3/contrib/pyopenssl.py", line 48, in <module>
from cryptography.hazmat.backends.openssl import backend as openssl_backend
File "/usr/local/lib/python2.7/dist-packages/cryptography/hazmat/backends/openssl/__init__.py", line 7, in <module>
from cryptography.hazmat.backends.openssl.backend import backend
File "/usr/local/lib/python2.7/dist-packages/cryptography/hazmat/backends/openssl/backend.py", line 75, in <module>
from cryptography.hazmat.bindings.openssl import binding
File "/usr/local/lib/python2.7/dist-packages/cryptography/hazmat/bindings/openssl/binding.py", line 205, in <module>
_verify_openssl_version(Binding.lib)
File "/usr/local/lib/python2.7/dist-packages/cryptography/hazmat/bindings/openssl/binding.py", line 169, in _verify_openssl_version
"You are linking against OpenSSL 1.0.1, which is no longer "
RuntimeError: You are linking against OpenSSL 1.0.1, which is no longer supported by the OpenSSL project. You need to upgrade to a newer version of OpenSSL.
/usr/local/lib/python2.7/dist-packages/cryptography/hazmat/primitives/constant\u-time.py:26:CryptographydeproductionWarning:不推荐支持Python版本。加密的下一个版本将取消支持。请尽快升级到支持hmac.compare_digest的版本(2.7.7+)。
utils.Persistently不推荐2018,
回溯(最近一次呼叫最后一次):
文件“/usr/local/bin/pip”,第9行,在
加载入口点('pip==20.0.2','console\u scripts','pip')()
文件“/usr/local/lib/python2.7/dist packages/pip/_internal/cli/main.py”,第73行,在main中
command=create_命令(cmd_name,isolated=(--isolated)在cmd_参数中)
文件“/usr/local/lib/python2.7/dist-packages/pip/_-internal/commands/_-init__.py”,第96行,在create_命令中
模块=导入lib.import\u模块(模块路径)
文件“/usr/lib/python2.7/importlib/_init_uuu.py”,第37行,在导入模块中
__导入(名称)
文件“/usr/local/lib/python2.7/dist packages/pip/_internal/commands/list.py”,第13行,在
从pip._internal.cli.req_命令导入IndexGroupCommand
文件“/usr/local/lib/python2.7/dist packages/pip/_internal/cli/req_command.py”,第15行,在
来自pip.\u internal.index.package\u finder导入PackageFinder
文件“/usr/local/lib/python2.7/dist packages/pip/_internal/index/package_finder.py”,第21行,在
从pip.\u internal.index.collector导入解析\u链接
文件“/usr/local/lib/python2.7/dist packages/pip/_internal/index/collector.py”,第12行,在
从pip.\u供应商导入html5lib,请求
文件“/usr/local/lib/python2.7/dist-packages/pip/_-vendor/requests/_-init__.py”,第97行,在
从pip._vendor.urlib3.contrib导入pyopenssl
文件“/usr/local/lib/python2.7/dist packages/pip/_vendor/urlib3/contrib/pyopenssl.py”,第48行,在
从cryptography.hazmat.backends.openssl导入后端作为openssl\u后端
文件“/usr/local/lib/python2.7/dist-packages/cryptography/hazmat/backends/openssl/__-init__;.py”,第7行,在
从cryptography.hazmat.backends.openssl.backend导入后端
文件“/usr/local/lib/python2.7/dist packages/cryptography/hazmat/backends/openssl/backend.py”,第75行,在
来自cryptography.hazmat.bindings.openssl导入绑定
文件“/usr/local/lib/python2.7/dist packages/cryptography/hazmat/bindings/openssl/binding.py”,第205行,在
_验证openssl版本(Binding.lib)
文件“/usr/local/lib/python2.7/dist packages/cryptography/hazmat/bindings/openssl/binding.py”,第169行,在openssl版本中
您正在链接到OpenSSL 1.0.1,它不再是
RuntimeError:您正在链接OpenSSL 1.0.1,OpenSSL项目不再支持它。您需要升级到更新版本的OpenSSL。
我知道错误很明显尚不清楚的是:
- 为什么我不能列出我安装的软件包?OpenSSL错误。。。用pip列表?!OpenSSL与已安装软件包列表有什么关系?!我只想看看我的服务器上安装了什么
- 为什么我不能卸载一个软件包?再说一次,OpenSSL和它有什么关系
- 我有一台服务器与有此问题的服务器相同(Debian 7,相同的OpenSSL版本,相同的Python版本),但在另一台服务器上,任何东西都可以正常工作(甚至没有警告)
- Python版本:Python 2.7.3
- OpenSSL版本:OpenSSL 1.0.1e 2013年2月11日
- 操作系统:Debian GNU/Linux 7
pip
供应商urlib3
,如果它出现在Python<2.7.9上。之所以这样做是因为Python<2.7.9不支持TLS;一个重要的现代特征pyOpenSSL
反过来又依赖于cryptography
,后者在版本2.9中放弃了1.0.1支持。因此,当您尝试在pip
中执行任何操作时,它会触发导致此错误的导入序列
您在另一台几乎相同的服务器上看不到这个问题的(可能)原因是加密还提供了静态链接较新OpenSSL的二进制轮子。如果您使用的是pip 8.x或更高版本(您可能使用的是正常工作的服务器,而在损坏的服务器上可能而不是),它将获取一个与OpenSSL 1.1.1最新版本链接的控制盘(前提是您使用的是x86_64.i686控制盘在2.7中丢弃)
根据您看到的错误消息,几乎可以肯定您正在坏掉的服务器上运行加密2.9.x。那个版本的变通方法。因此,如果您使用加密\u ALLOW\u OPENSSL\u 101=1 pip list
它应该可以工作
如果这样做有效,那么您应该立即升级加密
。由于您现在在此服务器上运行的是pip 20.x,因此命令CRYPTOGRAPHY\U ALLOW\U OPENSSL\U 101=1 pip install-U CRYPTOGRAPHY
应该从控制盘安装3.1版(假设您在x86\U 64上运行)
如果您在x86_64上运行而不是,那么您有两个选择(不涉及升级您的发行版,您应该升级,因为wheezy长期不受支持!):
始终通过CRYPTOGRAPHY\u ALLOW\u OPENSSL\u 101
并不再升级CRYPTOGRAPHY
(2.9.2是秘密支持1.0.1的最新版本)
将cryptography
降级至2.8,并且不再升级
Python打包很“有趣”。让我们去冒险吧
pip
供应商urlib3
,如果它出现在Python<2.7.9上。之所以这样做是因为Python<2.7.9不支持TLS;一个重要的现代特征pyOpenSSL
,反过来又取决于密码