IndexError: Cannot choose from an empty sequence // Werkzeug Debugger var CONSOLE_MODE = false, EVALEX = true, EVALEX_TRUSTED = false, SECRET = "Cztug1SITH6VWk19YYTC";
IndexError
IndexError: Cannot choose from an empty sequence
Traceback(most recent call last)
The above exception was the direct cause of the following exception:File "/usr/local/python3/lib/python3.7/site-packages/flask/app.py", line2551, in__call__
def __call__(self, environ: dict, start_response: t.Callable) -> t.Any:
"""The WSGI server calls the Flask application object as the
WSGI application. This calls :meth:`wsgi_app`, which can be
wrapped to apply middleware.
"""
return self.wsgi_app(environ, start_response)
File "/usr/local/python3/lib/python3.7/site-packages/flask/app.py", line2531, inwsgi_app
try:
ctx.push()
response = self.full_dispatch_request()
except Exception as e:
error = e
response = self.handle_exception(e)
except: # noqa: B001
error = sys.exc_info()[1]
raise
return response(environ, start_response)
finally:
File "/usr/local/python3/lib/python3.7/site-packages/flask/app.py", line2528, inwsgi_app
ctx = self.request_context(environ)
error: t.Optional[BaseException] = None
try:
try:
ctx.push()
response = self.full_dispatch_request()
except Exception as e:
error = e
response = self.handle_exception(e)
except: # noqa: B001
error = sys.exc_info()[1]
File "/usr/local/python3/lib/python3.7/site-packages/flask/app.py", line1825, infull_dispatch_request
request_started.send(self)
rv = self.preprocess_request()
if rv is None:
rv = self.dispatch_request()
except Exception as e:
rv = self.handle_user_exception(e)
return self.finalize_request(rv)
def finalize_request(
self,
rv: t.Union[ft.ResponseReturnValue, HTTPException],
File "/usr/local/python3/lib/python3.7/site-packages/flask/app.py", line1823, infull_dispatch_request
try:
request_started.send(self)
rv = self.preprocess_request()
if rv is None:
rv = self.dispatch_request()
except Exception as e:
rv = self.handle_user_exception(e)
return self.finalize_request(rv)
def finalize_request(
File "/usr/local/python3/lib/python3.7/site-packages/flask/app.py", line1799, indispatch_request
and req.method == "OPTIONS"
):
return self.make_default_options_response()
# otherwise dispatch to the handler for that endpoint
view_args: t.Dict[str, t.Any] = req.view_args # type: ignore[assignment]
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
def full_dispatch_request(self) -> Response:
"""Dispatches the request and on top of that performs request
pre and postprocessing as well as HTTP exception catching and
error handling.
File "/www/wwwroot/chat.py", line39, ingen_header
# post入参访问方式二:from-data(k-v)格式参数
@api.route('/gen_header', methods=['post'])
def gen_header():
wd = flask.request.values.get('wd')
future = executor.submit(do_heavy_work,wd)
return str(future.result())
def do_heavy_work(wd):
prompt = wd
#openai.api_key = api_key_list[-1]
openai.api_key = random.choice(api_key_list)
File "/usr/local/python3/lib/python3.7/concurrent/futures/_base.py", line435, inresult
self._condition.wait(timeout)
if self._state in [CANCELLED, CANCELLED_AND_NOTIFIED]:
raise CancelledError()
elif self._state == FINISHED:
return self.__get_result()
else:
raise TimeoutError()
def exception(self, timeout=None):
"""Return the exception raised by the call that the future represents.
File "/usr/local/python3/lib/python3.7/concurrent/futures/_base.py", line384, in__get_result
with self._condition:
return self._state in [CANCELLED, CANCELLED_AND_NOTIFIED, FINISHED]
def __get_result(self):
if self._exception:
raise self._exception
else:
return self._result
def add_done_callback(self, fn):
"""Attaches a callable that will be called when the future finishes.IndexError: Cannot choose from an empty sequence
This is the Copy/Paste friendly version of the traceback.
concurrent.futures.process._RemoteTraceback: """Traceback (most recent call last): File "/usr/local/python3/lib/python3.7/concurrent/futures/process.py", line 239, in _process_worker r = call_item.fn(*call_item.args, **call_item.kwargs) File "/www/wwwroot/chat.py", line 44, in do_heavy_work openai.api_key = random.choice(api_key_list) File "/usr/local/python3/lib/python3.7/random.py", line 261, in choice raise IndexError('Cannot choose from an empty sequence') from NoneIndexError: Cannot choose from an empty sequence"""The above exception was the direct cause of the following exception:Traceback (most recent call last): File "/usr/local/python3/lib/python3.7/site-packages/flask/app.py", line 2551, in __call__ return self.wsgi_app(environ, start_response) File "/usr/local/python3/lib/python3.7/site-packages/flask/app.py", line 2531, in wsgi_app response = self.handle_exception(e) File "/usr/local/python3/lib/python3.7/site-packages/flask/app.py", line 2528, in wsgi_app response = self.full_dispatch_request() File "/usr/local/python3/lib/python3.7/site-packages/flask/app.py", line 1825, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/python3/lib/python3.7/site-packages/flask/app.py", line 1823, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/python3/lib/python3.7/site-packages/flask/app.py", line 1799, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) File "/www/wwwroot/chat.py", line 39, in gen_header return str(future.result()) File "/usr/local/python3/lib/python3.7/concurrent/futures/_base.py", line 435, in result return self.__get_result() File "/usr/local/python3/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result raise self._exceptionIndexError: Cannot choose from an empty sequenceThe debugger caught an exception in your WSGI application. You can now look at the traceback which led to the error. If you enable JavaScript you can also use additional features such as code execution (if the evalex feature is enabled), automatic pasting of the exceptions and much more.Brought to you byDON'T PANIC, your friendly Werkzeug powered traceback interpreter.Console Locked
The console is locked and needs to be unlocked by entering the PIN. You can find the PIN printed out on the standard output of your shell that runs the server.
PIN:
一:视频码率高低有什么区别
高码率与低码率最大的区别是清晰度的问题。码率越高,图像越清晰;码率越低,图像越不清晰。
码率高低与清晰度成正比关系,码率越高,图像越清晰;码率越低,图像越不清晰。 视频码率就是数据传输时单位时间传送的数据位数,一般用的单位是kbps即千位每秒。通俗一点的理解就是取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件。
从确保视频传输质量和充分利用信息的角度来说,可变码率视频编码才是最合理的。
其理由是:视频信源本身的高峰信息量是变化的,若要使其输出码流的码率固定不变,则需要按信源的高峰信息量去设计传输系统,但大部分时间并不出现高峰信息量,为了确保码率固定,通常要插入一些填充码,这就浪费了视频资源。使用可变码率编码,就能按信源本身的信息量去分配,从而有效地利用信息资源。
二:码率高低有什么区别帧数
两个都高越清晰。码率决定是视频体积大小,码率越大越清晰,占内存也越大,分辨率决定画面像素大小,分辨率越大,像素越多,图像越大,视频越清晰。
他们都需要根据相应的要求和使用环境来设置匹配,不需要追求高清晰度把两者都设置过高,匹配合适就好。
三:码率高低有什么区别音乐
在配置摄像头参数时,我们会经常看到帧率、码流、分辨率等概念,对于该入行的弱电新人来说,可能都不太了解这几个概念,今天我们就一起来聊聊摄像头帧率、码流、分辨率之间的关系。
1、帧率、码流、分辨率定义帧率是每秒显示图像的数量,在摄像头参数经常会看到这个概念,比如一个摄像头帧率参数25fps,其实表示的就是1秒钟显示25个画面;分辨率表示每副图像的尺寸,即像素数量,常见的比如200W像素的摄像头,那它的分辨就是指的1920X1080;码流指的是视频数据的流量,而压缩则是去掉了图像的空间冗余和时间冗余。对于基本上静态的画面场景,可以使用很低的码流获取较好的图像质量,对于剧烈运动的场景,可能很高的码流也得不到好的图像质量。帧率则表示每秒钟传输,数据的画面,设置帧率表示想要视频的连续和实时性,设置分辨率表示是想要看到监控画面的尺寸大小,而码流的场景取决于存储、网络及视频应用场景的具体情况。
2、码流的作用码流就是指视频数据在单位时间内的数量大小,也叫码率,是视频编码画面质量控制中最重要的部分,同样的分辨率和帧率下,视频码流越大,画面质量越高,对应的存储容量也就越大。
帧率、分辨率与码流的关系
①视频监控存储容量计算
视频监控的存储容量跟码流有着密切的关系,现在主流摄像头编码技术主要有H.264和H.265两种编码格式,一般一个130W像素H.264编码的摄像头码流为2M,200W像素的码流为4M,而H.265编码格式摄像头为H.264摄像头码流的一半,那么200W像素的摄像头码流大概为2M。
计算公式:
录像容量(1天)(单位为G)=码流X3600X24÷8÷1024;
举个例子,1个200w像素H.264编码的摄像头存储一天需要存储录像占用硬盘多少容量?
4MX3600X24÷8÷1024=42.19G;
举个例子,1个200w像素H.265编码的摄像头存储一天需要存储录像占用硬盘多少容量?
2MX3600X24÷8÷1024=21.1G;
接下来再说说和高清摄像头密切相关的三码流技术。
②三码流技术
高清网络摄像头在编码的时候会有3个码流产生,分别是主码流、子码流、辅码流,这3个码流的概念最开始是由安防厂家海康威视提出的,主码流主要用于本地高清录像的存储,子码流主要用于网络视频传输,辅码流主要是手机端APP通过移动网络预览视频画面,使用辅码流技术使得通过移网络,手机也能获取流畅的视频图像和视频录像。

三码流技术
3、帧率的作用帧率指的就是1秒钟时间里传输、显示图片的帧数,每一帧就是一副静止的画面,快速连续的多帧就形成了运动的动态效果。高的帧率可以得到更加流畅,更加逼真的画面。每秒钟的帧数越多,fps指就是越高,所显示的视频动作画面就会越流畅,码流就会需要越大,比如普通的视频监控画面的帧率一般就是25fps,普通场景下,这个视频画面以及非常流畅,而对于高速上的抓拍摄像头,25fps的帧率往往不够,对快速过来的车辆抓拍往往会形成视频画面拖尾的现象,这就需要配置高帧率摄像头,比如常用的有120fps的高帧率工业摄像头。
4、分辨率的作用分辨率指的就是图像的尺寸或者大小,我们平时见到的很多,比如显示器的分辨率,摄像头的分辨率,常见的摄像头分辨率主要有1920X960(960P),1920X1080(1080P),4K超高清。在成像的两组数字中,前者表示图片长度,后者表示为图片的宽度,两者相乘就是图片的像素,比如1920X1080就表示200W像素,长宽比有4:3和16:9,在视频监控中,主要是16:9的格式。
最后做个小结,在调试摄像头参数的时候,会经常碰到帧率、码流、分辨率3个参数,帧率表示每秒显示图像的数量,在监控系统中常用的帧率为25fps,码流表示的单位时间内视频数据的流量,码流越大,存储的空间也就越大,分辨率指的图像的尺寸或者是画面大小,比如摄像头分辨率1920X1080指的就是200万的高清像素,监控系统的常用的长宽比主要是16:9 的格式。
版权声明:免责声明:本文来源网友投稿及网络整合仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。投诉邮箱:1765130767@qq.com.