Python3.11下使用源码包安装有cryptography3.3.2和paramiko3.1.0(也尝试过降版本到paramiko 2.7.1和cryptography2.9.2的组合)
在import paramiko时报错,报错信息如下:
>>> import paramiko
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/pythonuser/src/paramiko-2.7.1/paramiko/__init__.py", line 22, in <module>
from paramiko.transport import SecurityOptions, Transport
File "/home/pythonuser/src/paramiko-2.7.1/paramiko/transport.py", line 129, in <module>
class Transport(threading.Thread, ClosingContextManager):
File "/home/pythonuser/src/paramiko-2.7.1/paramiko/transport.py", line 190, in Transport
if KexCurve25519.is_available():
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/pythonuser/src/paramiko-2.7.1/paramiko/kex_curve25519.py", line 30, in is_available
X25519PrivateKey.generate()
File "/home/pythonuser/venv02/lib/python3.11/site-packages/cryptography-2.9.2-py3.11-linux-x86_64.egg/cryptography/hazmat/primitives/asymmetric/x25519.py", line 38, in generate
from cryptography.hazmat.backends.openssl.backend import backend
File "/home/pythonuser/venv02/lib/python3.11/site-packages/cryptography-2.9.2-py3.11-linux-x86_64.egg/cryptography/hazmat/backends/openssl/__init__.py", line 7, in <module>
from cryptography.hazmat.backends.openssl.backend import backend
File "/home/pythonuser/venv02/lib/python3.11/site-packages/cryptography-2.9.2-py3.11-linux-x86_64.egg/cryptography/hazmat/backends/openssl/backend.py", line 75, in <module>
from cryptography.hazmat.bindings.openssl import binding
File "/home/pythonuser/venv02/lib/python3.11/site-packages/cryptography-2.9.2-py3.11-linux-x86_64.egg/cryptography/hazmat/bindings/openssl/binding.py", line 16, in <module>
from cryptography.hazmat.bindings._openssl import ffi, lib
ImportError: /home/pythonuser/venv02/lib/python3.11/site-packages/cryptography-2.9.2-py3.11-linux-x86_64.egg/cryptography/hazmat/bindings/_openssl.abi3.so: undefined symbol: OPENSSL_sk_num
但如果改用whl安装cryptography的话,import paramiko就正常。
操作系统:CentOS7,独立目录安装有OpenSSL版本1.1.1t,
OpenSSL安装环境配置为:
../config --prefix=/usr/local/openssl shared zlib threads enable-camellia
安装后已为相关的bin、include、lib64里的libssl.so.1.1和libcrypto.so.1.1建立了软链接
也更新了动态链接库
/usr/local/openssl/lib:
libssl.so.1.1 -> libssl.so.1.1
libcrypto.so.1.1 -> libcrypto.so.1.1
Python全程在激活虚拟环境下操作,也试过不使用虚拟环境,问题一样。
此外,试过使用系统自带的openssl-1.0.2k和独立安装的openssl-0.9.8e来重新编译Python,结果都一样。
请教老师们,这个可能是什么原因造成的,如何解决?非常感谢!