Python 无法导入 OpenSSL

Python 无法导入 OpenSSL

我为一个创建了一个虚拟环境矩阵家庭服务器安装在共享主机

$ virtualenv -p python2.7 /home/tristank/venv/synapse
$ source /home/tristank/venv/synapse/bin/activate

我安装了所有必要的依赖项并启动了服务器,但由于某种原因 Python 无法识别 Openssl。这是为什么?如何让 Python 选择 OpenSSL?

$ python -V
Python 2.7.3

$ python -c 'import ssl; print ssl.OPENSSL_VERSION'
OpenSSL 1.0.0-fips 29 Mar 2010

$ which openssl 
~/.toast/armed/bin/openssl

$ toast status openssl
openssl
  version 1.0.2d: stored
    urls:
      https://www.openssl.org/source/openssl-1.0.2d.tar.gz
    build 1: armed

$ python -m synapse.app.homeserver \
> --server-name my.domain.name \
> --config-path homeserver.yaml \
> --generate-config
ERROR:root:Can't import 'OpenSSL' which is part of 'pyopenssl>=0.14'
Traceback (most recent call last):
  File "/home/tristank/venv/synapse/lib/python2.7/site-packages/synapse/python_dependencies.py", line 90, in check_requirements
    module = __import__(module_name)
      File "/home/tristank/venv/synapse/lib/python2.7/site-packages/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import rand, crypto, SSL
  File "/home/tristank/venv/synapse/lib/python2.7/site-packages/OpenSSL/rand.py", line 11, in <module>
    from OpenSSL._util import (
  File "/home/tristank/venv/synapse/lib/python2.7/site-packages/OpenSSL/_util.py", line 6, in <module>
    from cryptography.hazmat.bindings.openssl.binding import Binding
  File "/home/tristank/venv/synapse/lib/python2.7/site-packages/cryptography/hazmat/bindings/openssl/binding.py", line 13, in <module>
    from cryptography.hazmat.bindings._openssl import ffi, lib
ImportError: libssl.so.1.0.0: cannot open shared object file: No such file or directory
Traceback (most recent call last):
  File "/package/host/localhost/python-2.7/lib/python2.7/runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/package/host/localhost/python-2.7/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/tristank/venv/synapse/lib/python2.7/site-packages/synapse/app/homeserver.py", line 22, in <module>
    check_requirements()
  File "/home/tristank/venv/synapse/lib/python2.7/site-packages/synapse/python_dependencies.py", line 98, in check_requirements
    % (module_name, dependency)
synapse.python_dependencies.MissingRequirementError: Can't import 'OpenSSL' which is part of 'pyopenssl>=0.14'

$ pip install pyopenssl
Requirement already satisfied (use --upgrade to upgrade): pyopenssl in /home/tristank/venv/synapse/lib/python2.7/site-packages
Requirement already satisfied (use --upgrade to upgrade): six>=1.5.2 in /home/tristank/venv/synapse/lib/python2.7/site-packages (from pyopenssl)
Requirement already satisfied (use --upgrade to upgrade): cryptography>=0.7 in /home/tristank/venv/synapse/lib/python2.7/site-packages (from pyopenssl)
Requirement already satisfied (use --upgrade to upgrade): setuptools in /home/tristank/venv/synapse/lib/python2.7/site-packages (from cryptography>=0.7->pyopenssl)
Requirement already satisfied (use --upgrade to upgrade): enum34 in /home/tristank/venv/synapse/lib/python2.7/site-packages (from cryptography>=0.7->pyopenssl)
Requirement already satisfied (use --upgrade to upgrade): ipaddress in /home/tristank/venv/synapse/lib/python2.7/site-packages (from cryptography>=0.7->pyopenssl)
Requirement already satisfied (use --upgrade to upgrade): pyasn1>=0.1.8 in /home/tristank/venv/synapse/lib/python2.7/site-packages (from cryptography>=0.7->pyopenssl)
Requirement already satisfied (use --upgrade to upgrade): idna>=2.0 in /home/tristank/venv/synapse/lib/python2.7/site-packages (from cryptography>=0.7->pyopenssl)
Requirement already satisfied (use --upgrade to upgrade): cffi>=1.1.0 in /home/tristank/venv/synapse/lib/python2.7/site-packages (from cryptography>=0.7->pyopenssl)
Requirement already satisfied (use --upgrade to upgrade): pycparser in /home/tristank/venv/synapse/lib/python2.7/site-packages (from cffi>=1.1.0->cryptography>=0.7->pyopenssl)

相关内容