【问题标题】:ImportError: The version of cryptography does not match the loaded shared objectImportError:密码学版本与加载的共享对象不匹配
【发布时间】:2019-07-24 09:05:24
【问题描述】:

我正在使用 Paramiko。知道如何使用Paramiko.RSAKey.from_private_key() 函数吗? 我有兴趣使用函数来解析私钥并将该私钥用于 SSHClient。

我想运行的代码:

file = './file.pem'
mypkey = paramiko.RSAKey.from_private_key_file(file)

结果:

ImportError:加密的版本与加载的共享对象不匹配。如果您在 Python 路径中安装了多个密码学副本,则可能会发生这种情况。请尝试创建一个新的虚拟环境来解决此问题。加载的python版本:2.4.2,共享对象版本:b'2.7'

这似乎是 lib 密码学的问题:

from cryptography.hazmat.backends.openssl.backend import backend

我有 python 3.7.1 我已经使用pip install 安装了 Paramiko

以下是关于我用于 paramiko 的版本的一些信息:

pip show paramiko
Name: paramiko
Version: 2.6.0
Summary: SSH2 protocol library
Home-page: https://github.com/paramiko/paramiko/
License: LGPL
Requires: pynacl, bcrypt, cryptography
Required-by: sshtunnel

以下是关于我用于加密的版本的一些信息:

pip show cryptography
Name: cryptography
Version: 2.7
Summary: cryptography is a package which provides cryptographic recipes and primitives to Python developers.
Home-page: https://github.com/pyca/cryptography
License: BSD or Apache License, Version 2.0
Requires: six, asn1crypto, cffi
Required-by: service-identity, pyOpenSSL, paramiko

我未安装密码学并安装了与 paramiko 相同的版本:

pip install cryptography==2.6.0

同样的错误仍然存​​在

【问题讨论】:

  • 我认为这可能更适合here

标签: python cryptography paramiko python-cryptography


【解决方案1】:

这个问题几乎总是由同时安装多个加密副本引起的。如果您同时使用pip 和系统的包管理器安装了密码学,就会发生这种情况。尝试构建一个新的 virtualenv,将您的依赖项安装到其中,这应该可以解决问题。

【讨论】:

  • 对于我们这些不知道的人,我们将如何正确构建一个新的 virtualenv?
猜你喜欢
  • 1970-01-01
  • 2018-10-07
  • 1970-01-01
  • 2021-12-05
  • 2014-02-22
  • 2010-09-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多