首页 > 解决方案 > 如何在命令行中正确地从 OpenSSL (pyOpenSSL) 导入加密?

问题描述

环境:Ubuntu 12.04.5 LTS x64、OpenSSL v1.0.2h、pyOpenSSL v16.1.0、Python v2.7.3、Eclipse Oxygen.1a (4.7.1a)。

名为“test.py”的程序:

#/usr/bin/env python
#encoding:utf-8

from OpenSSL import crypto
print crypto.__file__

print "hello world"

该程序在 Eclipse 中运行,得到如下结果。

/usr/local/lib/python2.7/site-packages/OpenSSL/crypto.pyc
hello world

然而,当在命令行中运行相同的程序时,会发生错误,信息如下所示。

$ python test.py
Traceback (most recent call last):
  File "test.py", line 4, in <module>
    from OpenSSL import crypto
  File "/usr/local/lib/python2.7/site-packages/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import rand, crypto, SSL
  File "/usr/local/lib/python2.7/site-packages/OpenSSL/rand.py", line 12, in <module>
    from OpenSSL._util import (
  File "/usr/local/lib/python2.7/site-packages/OpenSSL/_util.py", line 6, in <module>
    from cryptography.hazmat.bindings.openssl.binding import Binding
  File "/usr/local/lib/python2.7/site-packages/cryptography/hazmat/bindings/openssl/binding.py", line 14, in <module>
    from cryptography.hazmat.bindings._openssl import ffi, lib
ImportError: /usr/local/lib/python2.7/site-packages/_cffi_backend.so: undefined symbol: PyUnicodeUCS2_FromUnicode

Eclipse 和命令行中的程序导入相同的“crypto.pyc”,为什么它在 Eclipse 中工作而在命令行(UCS2)中失败?如何在命令行中正确从 OpenSSL 导入加密?先感谢您!

标签: cryptographypyopenssl

解决方案


推荐阅读