当我model_main_tf2.py在对象检测 API 上运行时,收到以下错误消息:
Traceback (most recent call last):
File "/content/models/research/object_detection/model_main_tf2.py", line 32, in <module>
from object_detection import model_lib_v2
File "/usr/local/lib/python3.7/dist-packages/object_detection/model_lib_v2.py", line 29, in <module>
from object_detection import eval_util
File "/usr/local/lib/python3.7/dist-packages/object_detection/eval_util.py", line 36, in <module>
from object_detection.metrics import lvis_evaluation
File "/usr/local/lib/python3.7/dist-packages/object_detection/metrics/lvis_evaluation.py", line 23, in <module>
from lvis import results as lvis_results
File "/usr/local/lib/python3.7/dist-packages/lvis/__init__.py", line 5, in <module>
from lvis.vis import LVISVis
File "/usr/local/lib/python3.7/dist-packages/lvis/vis.py", line 1, in <module>
import cv2
File "/usr/local/lib/python3.7/dist-packages/cv2/__init__.py", line 9, in <module>
from .cv2 import _registerMatType …Run Code Online (Sandbox Code Playgroud) 在将代码从Python 2移植到Python 3时,我在从标准输入读取UTF-8文本时遇到了这个问题.在Python 2中,这很好用:
for line in sys.stdin:
...
Run Code Online (Sandbox Code Playgroud)
但Python 3期望来自sys.stdin的 ASCII ,如果输入中有非ASCII字符,我会收到错误:
UnicodeDecodeError:'ascii'编解码器无法解码字节..位置..:序号不在范围内(128)
对于常规文件,我会在打开文件时指定编码:
with open('filename', 'r', encoding='utf-8') as file:
for line in file:
...
Run Code Online (Sandbox Code Playgroud)
但是如何指定标准输入的编码?其他SO帖子建议使用
input_stream = codecs.getreader('utf-8')(sys.stdin)
for line in input_stream:
...
Run Code Online (Sandbox Code Playgroud)
但是,这在Python 3中不起作用.我仍然得到相同的错误消息.我正在使用Ubuntu 12.04.2,我的语言环境设置为en_US.UTF-8.