fastapi ResponseModel
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768from pydantic import BaseModelclass ResponseModel(BaseModel): code: int = 200 msg: str = "" success: bool = True data: dict = Noneclass TaskResponseModel(ResponseModel): data: dict = { "code": 200, "msg": "", "success": True, "data": { "id" ...
安装conda后取消命令行前出现的base,取消每次启动自动激活conda的基础环境
安装conda后取消命令行前出现的base,取消每次启动自动激活conda的基础环境
方法一每次在命令行通过conda deactivate退出base环境回到系统自带的环境
方法二1,通过将auto_activate_base参数设置为false实现:
1conda config --set auto_activate_base false
2,那要进入的话通过conda activate base
3,如果反悔了还是希望base一直留着的话通过来恢复
1conda config --set auto_activate_base true
在一个进程中通过队列的方式缓存opencv视频帧,并在另一个进程中读取
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697import _threadimport queueimport timeimport cv2from flask import Flask, Responseapp = Flask(__name__)max_size = 3q1 = queue.Queue(maxsize=max_size)q2 = queue.Queue(maxsize=max_size)open_flag = 1def open_and_show(ip_camera_url, title): global open_flag cap = cv2.VideoCapture(ip_camera_url) while open_flag ...
在python中将opencv读取到的视频数据发布为ros话题,并在ros中能够通过rqt显示出来
12345678910111213141516171819202122232425262728293031323334import cv2import rospyfrom sensor_msgs.msg import Imagefrom cv_bridge import CvBridge, CvBridgeError# Initialize ROS noderospy.init_node('video_publisher', anonymous=True)# Create a publisher for the video streamvideo_pub = rospy.Publisher('video_stream', Image, queue_size=10)# Initialize OpenCV video capturecap = cv2.VideoCapture('rtsp://admin:qwer1234!.@192.168.1.67:554')# Initialize CvBridge for image con ...
超级详细的Lua语言的基础教程
https://blog.csdn.net/qq_43594278/article/details/116018869
python asyncio
例子1234567import asyncioasync def main(): print("hello") await asyncio.sleep(1) print("world")asyncio.run(main())
主要函数task = asyncio.create_tas()res = await asyncio.gather(task1, task2) # res: list
获取返回值res = await task
yazi框架学习笔记
主线程
监听和建立客户端的连接
接收客户端的请求数据,创建一个任务,该任务携带请求数据,并把该任务放入任务队列
告诉分发线程,有请求任务过来了,叫他赶紧去处理
重复上面三个步骤
注意:主线程不处理具体请求
分发线程
查看任务队列,看是否有请求任务?没有任务则继续睡觉,否则把任务取出来,然后分发给线程池
线程池有空闲的线程,则把该任务交给空闲的线程处理,否则该任务乖乖待在队列里等待,直到有空闲的线程为止
重复上面两个步骤
注意:分发线程也不处理具体请求
工作线程
执行任务
销毁任务
重复以上两个步骤
注意:工作线程处理具体请求
select、poll、epoll, 图解
io多路复用 核心代码 & 图解 (select 模型)
Select模型该模型的图解大致如下
Select模型存在以下缺点:
默认情况下,fdset只有1024个bit位,也就是说只能1024个连接。
每次select函数调用后,都需要检测所有文件描述符。
每次select函数调用时,内核都需要进行拷贝文件描述符集合。
参描较多,较难理解。
Poll模型Poll模型与select模型的运行规则基本一致。
该模型的图解大致如下
Poll模型相比select模型,有以下优点:
将文件描述符交给结构体数组进行记录和管理,可连接数量可自定义,并且大大增加。
参数相对更简单易懂。
epoll模型epoll是典型的用于高效地处理大量并发连接的模型
该模型的图解大致如下
epoll模型相比select、poll模型,有以下优点:
支持边缘触发。当recv函数一次性无法读取全部数据的时候,可以在下次循环中继续读取数据,有效地避免粘包等问题。
使用红黑树管理文件描述符和对应事件。在连接数巨大的时候,epoll的红黑树数据结构可以快速地实现节点的改查。包括相应事件发生的时候,内 ...
deepsort主要代码
app.py
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002 ...
Anaconda从下载到环境变量配置(windows)
现在就是最重要的部分:配置环境变量1、现在把三个目录复制下来备用找到你电脑里面anaconda安装的目录 anaconda/scripts的目录
① anaconda安装的目录 D:\Download\ANACONDA
② anaconda/scripts的目录 D:\Download\ANACONDA\Scripts
③ bin的目录 D:\Download\ANACONDA\Scripts\Library\bin
2、配置环境变量首先,配置系统变量,如下: