2017-11-18 12 views
3

pymodbus tcp 서버를 실행하려고하는데이 스택 추적을 얻는 중입니다 ... 여기의 모든 손실로 인해 도움을받을 수 있습니다. 감사!파이썬 암호화 오류가 이름을 가져올 수 없습니다. certificate_transparency

Traceback (most recent call last): 
File "Worrking_ModbusJ1939Bridge.py", line 12, in <module> 
from pymodbus.server.async import StartTcpServer 
File "build/bdist.linux-armv7l/egg/pymodbus/server/async.py", line 18, in <module> 
File "build/bdist.linux-armv7l/egg/pymodbus/internal/ptwisted.py", line 5, in <module> 
File "/usr/local/lib/python2.7/dist-packages/twisted/conch/manhole_ssh.py", line 14, in <module> 
from twisted.conch.ssh import factory, session 
File "/usr/local/lib/python2.7/dist-packages/twisted/conch/ssh/factory.py", line 18, in <module> 
from twisted.conch.ssh import (_kex, transport, userauth, connection) 
File "/usr/local/lib/python2.7/dist packages/twisted/conch/ssh/transport.py", line 345, in <module> 
class SSHTransportBase(protocol.Protocol): 
File "/usr/local/lib/python2.7/dist-packages/twisted/conch/ssh/transport.py", line 469, in SSHTransportBase 
supportedCiphers = _getSupportedCiphers() 
File "/usr/local/lib/python2.7/dist-packages/twisted/conch/ssh/transport.py", line 335, in _getSupportedCiphers 
backend=default_backend(), 
File "/usr/local/lib/python2.7/dist-packages/cryptography/hazmat/backends/__init__.py", line 15, in default_backend 
from cryptography.hazmat.backends.openssl.backend import 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 16, in <module> 
from cryptography import utils, x509 
File "/usr/local/lib/python2.7/dist-packages/cryptography/x509/__init__.py", line 7, in <module> 
from cryptography.x509 import certificate_transparency 
ImportError: cannot import name certificate_transparency 

답변

1

나는 https://github.com/oracle/solaris-userland/ 빌드 시스템을 사용하여, 솔라리스 11.4 파이썬 암호화를 업데이트하는 동안이 타격했습니다. pip에 대한 "간단한"업데이트는 나를위한 옵션이 아니며, 우리가하는 일이 아닙니다.

결국 해결책을 찾았습니다. 패키지를 잘못 작성했습니다.

암호화 2.1.4는 cffi> 1.7에 따라 다릅니다. 이 패키지는 모두 우리가 출하 한 버전과 비교하여 배달 가능 비트가 있습니다.

새 파일을 올바르게 추적하도록 패키지 매니페스트를 업데이트하지 않으면 cffi와 암호화가 현재 버전이 사용하는 기호를 가져올 수 없게됩니다.

[이것을 알아내는 데 올바른 길을 걸어 준 #cryptography-dev의 Alex Gaynor에게 아주 큰 곰.] 당신은 암호화를 구축하고 제공하는 것을 보면

$ python2.7 
Python 2.7.14 (default, Jan 31 2018, 05:35:05) [C] on sunos5 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from cryptography.hazmat.bindings._openssl import ffi, lib 
>>> from cryptography.x509 import certificate_transparency 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib/python2.7/vendor-packages/cryptography/x509/__init__.py", line 7, in <module> 
    from cryptography.x509 import certificate_transparency 
ImportError: cannot import name certificate_transparency 

, 당신은 (/usr/lib/python-$(PYVER)/vendor-packages/cryptography/x509/certificate_transparency.py으로 Solaris에서 제공) 파일이 사실이 있음을 발견 할 것이다 - 그 파일은 계층 구조의 나머지 부분에없는 경우 결국이 ImportError로 끝납니다.