pip安装sentence-transformers时的一些报错记录
之前记的一些记录,也不知道是什么时候记下来的,不想删除放这里存着吧。pip3install-Usentence-transformerspip3install-Utransformers下载太慢甚至超时,urllib3.exceptions.ReadTimeoutError:HTTPSConnectionPool(host='files.pythonhosted.org',port=443):Readtimedout。直接指定下载源,解决问题。也可以配置vim~/pip/pip.conf文件中的源地址,一劳永逸。pipinstall-ihttps://pypi.douban.com/simple-Usentence-transformersModuleNotFoundError:Nomodulenamed'setuptools_rust' 解决办法:升级pip,然后再...[>>…]
使用tiangolo/uvicorn-gunicorn-fastapi镜像搭建的服务端产生core.*文件
在使用tiangolo/uvicorn-gunicorn-fastapi镜像搭建的python服务端程序目录中发现一些core.*文件,数量不一定,偶尔有多个。示例如下,平均每个文件约50M左右,非文本文件无法查看内容。-rw-------1rootroot47255552Mar1117:22core.34931-rw-------1rootroot47215112Mar1117:22core.12341-rw-------1rootroot47122552Mar1117:22core.12341 觉得问题出现的很奇怪,程序中没有生成这个文件的逻辑,于是去查看请求日志和错误日志,在gunicorn_error.log里查到了对应的时间中出现了如下这种错误内...[>>…]
Python使用clickhouse_driver操作clickhouse数据库
Python要实现使用clickhouse_driver操作clickhouse数据库,首先需要安装clickhouse_driver模块:pipinstallclickhouse_driverPIP安装的时候有时会遇到WARNING:Retrying(Retry(total=4,connect=None,read=None,redirect=None,status=None))afterconnectionbrokenby'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnectionobjectat0x7fd06b379a90>:Failedtoestablishanewconnection:[Errno-3]Temporaryfailureinnameresolution')':/simple/clickhouse-driver/。如果不是...[>>…]
Python程序中pymysql的connections.py报错:raise err.InterfaceError(0
在Python程序中遇到了一个报错raiseerr.InterfaceError(0,""),pymysql.err.InterfaceError:(0,'')详细报错内容如下。 File"/usr/local/lib/python3.8/site-packages/pymysql/connections.py",line479,inrollback self._execute_command(COMMAND.COM_QUERY,"ROLLBACK") File"/usr/local/lib/python3.8/site-packages/pymysql/connections.py",line793,in_execute_command raiseerr.InterfaceError(0,"") pymysql.err.InterfaceError:(0,'') 从报错的提示来看是MYSQL...[>>…]
Python中读取程序中的进程和线程ID
程序调试的时候有时需要看看当前程序的进程和线程ID,可以使用如下的方法。 #引入OS和psutil库 importos importpsutil importthreading #取得python进程数据 pid=os.getpid() p=psutil.Process(pid) print('PID:%d'%pid) print('PNAME:%s'%p.name()) print(p.__dict__) #取得线程ID数据 t=threading.currentThread() print("TID:%d"%t.ident) print("TID:%d"%t.name) print("TNAME:%S"%t.getName()) print(t.__dict__) #print(p)打印出来的结果 psutil.Process(pid=14572,name='python.ex...[>>…]
Pymysql中Mysql连接默认会开启事务处理-数据表名行数列表SQL
PyMySQL是Python3.x版里用于连接处理MySQL业务的库,在之前的Python2版本中是使用mysqldb,使用时引入类库后直接执行connect方法,其中要注意的两个选项,设置connect_timeout控制连接时间,设置cursorclass=pymysql.cursors.DictCursor从而使mysql返回的结果中包含字段,如果不设置执行完毕返回的结果集默认以元组形式。如下示例: #导入pymysql连接database importpymysql con=pymysql.connect( host="", user="", password="", database="", port="", cursorclass=pymysql.cursors.Dic...[>>…]
tiangolo/uvicorn-gunicorn-fastapi镜像服务端python程序中的时区问题
在使用tiangolo/uvicorn-gunicorn-fastapi镜像搭建的服务端后台程序,修改了docker容器中的/etc/timezone配置值,gunicorn的日志时间已经正常地显示成了北京时间,但在python程序中使用importtime程序输出的数据中仍然是UTC时间。 #cat/etc/timezone Asia/Shanghai #容器中时区 dockercontainerapp#date ThuJun1201:34:30UTC2021 #python中程序输出时间问题 print(time.strftime("%Y-%m-%d-%H_%M_%S",time.localtime())) 解决办法:python程序取时间使用的是time.lo...[>>…]
python的try yield finally + async是不是有点坑
Python中的tryfinally块是一个异常捕获的手段,同时Python中还有一个功能就是tryfinally块里的finally语句块总是会被执行的,并且会使用try语句块里的变量。如下示例代码及其运行结果: #示例1 deftest(): try: print("a") yield1 return2 finally: print("bbbb") return0 a=test() print(a) print("-"*30) print(next(a)) print(a) print("="*30) print(next(a)) #示例2 deftest2(): try: print("a") return2 finally: print("b") #return0 a=test2() print('-'*30) print(a) 执行结果如...[>>…]
目前没有找到gunicorn平滑重启的方法
使用的tiangolo/uvicorn-gunicorn-fastapi作为服务端,在启动的时候通过配置gunicorn_conf.py中的workers来实现启动多进程来应对并发请求,今天突然如果服务在运行的过程中有些原因需要重启,有没有办法做到平滑重启呢?就像nginx的-sreload一样。之前在文章:http://www.04007.cn/article/944.html中曾认为发送HUP信号给gunicorn,就会平滑reload。但今天真实测试发现其能实现代码重加载,但并不能平滑。 因为上篇文章中的代码使用的是软链接,无法进行测试,这次的...[>>…]
Fastapi框架提取所有的route路由以做后台权限控制
在做项目的权限控制时,为了实现自动化扩展权限控制,我们习惯将控制器方法作为一个权限标识,然后根据帐户的权限中是否存在这么一项路由以作为其是否能管理这项操作。这是一个简单且易维护的功能实现方法,之前见过一套教学系统,可能功能也比较庞大,其在做权限的时候用的一套复杂的配置文件,非常烦人。 使用上面的方法的关键是要分离后台程序中的所有路由器方法,并过滤一些非权限项的路由,比如退出方法,然后添加进数据库表,再将角色和权限进行一对多联系起来...[>>…]