咨询如何解决Ubuntu16.04上运行Nvidia Digits6.1.1的导入报错问题
Ubuntu 16.04 部署 Nvidia Digits 6.1.1 启动报错记录
在安装了Ubuntu 16.04的个人电脑上部署Nvidia Digits 6.1.1版本,全程严格按照官方指引完成所有安装步骤,启动Digits服务时弹出如下错误堆栈:
Traceback (most recent call last): File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main "__main__", fname, loader, pkg_name) File "/usr/lib/python2.7/runpy.py", line 72, in _run_code exec code in run_globals File "/home/kenan/digits/digits/__main__.py", line 70, in <module> main() File "/home/kenan/digits/digits/__main__.py", line 55, in main import digits.webapp File "digits/webapp.py", line 7, in <module> from flask_socketio import SocketIO File "/usr/local/lib/python2.7/dist-packages/flask_socketio/__init__.py", line 16, in <module> import socketio File "/home/kenan/.local/lib/python2.7/site-packages/socketio/__init__.py", line 3, in <module> from .client import Client File "/home/kenan/.local/lib/python2.7/site-packages/socketio/client.py", line 7, in <module> import engineio File "/home/kenan/.local/lib/python2.7/site-packages/engineio/__init__.py", line 3, in <module> from .client import Client File "/home/kenan/.local/lib/python2.7/site-packages/engineio/client.py", line 2, in <module> from json import JSONDecodeError ImportError: cannot import name JSONDecodeError
当前为部署完成启动服务失败,需要相关排查思路与解决方案建议。
核心问题定位
JSONDecodeError 是Python 3.5及以上版本新增的内置异常类,Python 2.7内置的json模块中未定义该异常。当前环境通过pip安装的socketio、engineio组件为适配Python 3.x的高版本,和Digits 6.1.1所依赖的Python 2.7运行环境不兼容,最终触发导入失败错误。
可落地解决步骤
- 卸载当前环境中安装的不兼容高版本依赖包,执行命令:
pip2 uninstall -y python-socketio python-engineio flask-socketio - 安装与Digits 6.1.1适配的指定版本依赖:
pip2 install python-socketio==4.6.1pip2 install python-engineio==3.14.2pip2 install flask-socketio==3.3.2
- 安装完成后重新执行Digits启动命令,验证服务可正常加载web管理界面。
内容的提问来源于stack exchange,提问作者Kenan Baysal
相关产品推荐
相关产品推荐

