eventlet在ubuntu上出现OSError protocol not found
2020年6月21日 09:24
描述
tensorflow的nvidia docker镜像使用ubuntu16.04, ubuntu是精简之后的,有些包可能没有。在上面运行eventlet会出现下面问题
错误内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | Traceback (most recent call last): File "/app/defect-client/defect_client/cmd/wafer-worker.py" , line 14, in <module> import eventlet File "/usr/local/lib/python3.6/dist-packages/eventlet/__init__.py" , line 10, in <module> from eventlet import convenience File "/usr/local/lib/python3.6/dist-packages/eventlet/convenience.py" , line 7, in <module> from eventlet.green import socket File "/usr/local/lib/python3.6/dist-packages/eventlet/green/socket.py" , line 21, in <module> from eventlet.support import greendns File "/usr/local/lib/python3.6/dist-packages/eventlet/support/greendns.py" , line 69, in <module> setattr(dns.rdtypes.IN, pkg, import_patched( 'dns.rdtypes.IN.' + pkg)) File "/usr/local/lib/python3.6/dist-packages/eventlet/support/greendns.py" , line 59, in import_patched return patcher.import_patched(module_name, **modules) File "/usr/local/lib/python3.6/dist-packages/eventlet/patcher.py" , line 126, in import_patched *additional_modules + tuple(kw_additional_modules.items())) File "/usr/local/lib/python3.6/dist-packages/eventlet/patcher.py" , line 100, in inject module = __import__(module_name, {}, {}, module_name. split ( '.' )[:-1]) File "/usr/local/lib/python3.6/dist-packages/dns/rdtypes/IN/WKS.py" , line 25, in <module> _proto_tcp = socket.getprotobyname( 'tcp' ) OSError: protocol not found |
解决办法
1 | apt-get -o Dpkg::Options::= "--force-confmiss" install --reinstall netbase |