随笔分类 -  Python

摘要:Python 调用 FFMPEG 从 Python 中调用 FFMPEG 不是很方便,只有通过 subprocess 或 os.system 等执行 FFMPEG 命令。也有 ffmpeg-python 这种已经封装好的三方库,但本着学习的目的,还是自己写了一个简单的 Demo 来实现获取视频信息和 阅读全文
posted @ 2024-10-18 18:10 守望人间 阅读(944) 评论(0) 推荐(0) 编辑
摘要:Python 多进程下日志打印 问题分析 使用 gunicorn 启动 Flask 时,如果直接使用 logging 的 RotatingFileHandler 模块会出现日志混乱,甚至日志丢失的情况。 在日志翻转时,可能出现一个进程将 log 文件翻转,而后又有进程也将 log 文件翻转,导致 l 阅读全文
posted @ 2024-07-25 21:40 守望人间 阅读(106) 评论(0) 推荐(0) 编辑
摘要:gunicorn 自定义日志 默认情况下,如果只通过errorlog和accesslog参数指定 gunicorn 的日志文件,日志文件会一直增长,最后导致硬盘占用过大和检查日志不方便。因此需要自定义配置滚动日志保存。 配置文件 直接在 gunicorn 的配置文件 gunicorn_conf.py 阅读全文
posted @ 2024-07-06 11:02 守望人间 阅读(519) 评论(0) 推荐(0) 编辑
摘要:Docker 授权插件示例 在处理 Docker 基线检查问题时,有一个检查项目为使用授权插件,需要给 Docker 设置授权插件,限制客户端命令的使用。为了通过检查,写了一个脚本实现AuthZ的授权接口,没有限制任何权限,全部返回允许,如果需要,可以增加限制逻辑。 需要完成的操作: 增加授权接口脚 阅读全文
posted @ 2024-01-01 16:53 守望人间 阅读(648) 评论(0) 推荐(0) 编辑
摘要:python代码压缩 使用 python-minifier 库压缩 python 文件大小,同时混淆代码。安装库:pip install python-minifier,对于单个文件或整个项目都可以直接使用命令压缩。 使用 python-minifier 压缩 pydantic 的模型时会有问题,暂 阅读全文
posted @ 2023-11-19 20:25 守望人间 阅读(206) 评论(0) 推荐(0) 编辑
摘要:使用 Python 解压缩 zip 文件 压缩 压缩文件时,可以将压缩文件保存在本地或保存在内存中,将压缩文件保存在内存中时,方便后续使用,比如直接返回给前端,也就不用再执行删除操作。 import zipfile from pathlib import Path from io import By 阅读全文
posted @ 2023-11-07 21:34 守望人间 阅读(201) 评论(0) 推荐(0) 编辑
摘要:文件打包为tar包 后端需要将传入的文件和本地的文件一同打包为 tar 包,然后下载;一个示例: # coding: utf-8 import tarfile import json import datetime from io import BytesIO students = { 'stude 阅读全文
posted @ 2023-10-16 21:08 守望人间 阅读(41) 评论(0) 推荐(0) 编辑
摘要:# 枚举类输出 django 的 choices 数据 在 django 项目的 models 中难免会使用 choices,例如用户的状态等。而在其他地方需要筛选用户时,使用枚举类型更加直观方便,为了统一管理,希望只定义一个枚举类型。 定义枚举 ```python from enum import 阅读全文
posted @ 2023-06-22 07:44 守望人间 阅读(199) 评论(0) 推荐(0) 编辑
摘要:# Ubuntu 安装 python3.9 最简单方便的是 apt 使用第三方的 ppa 源,然后直接 apt 安装 python3.9 1. 安装 software-properties-common 获取`add-apt-repository`命令:`apt install -y softwar 阅读全文
posted @ 2023-05-25 15:23 守望人间 阅读(817) 评论(0) 推荐(0) 编辑
摘要:Flask-ApScheduler 任务未执行问题 在开发时,使用flask run启动 flask 时,ApScheduler 定时任务没有按计划执行原因分析。 ApScheduler 任务配置 Config = { SCHEDULER_JOBS = [ { 'id': 'ims_info', # 阅读全文
posted @ 2022-11-09 18:29 守望人间 阅读(1226) 评论(0) 推荐(0) 编辑
摘要:docker 部署 flask 项目 项目结构说明 nginx 做反向代理,gunicorn 启动 flask,flask 连接 mysql 镜像 nginx:1.21.3 mysql:8 flask_app(以 python 镜像为基础构建的项目镜像) docker 版本: Docker vers 阅读全文
posted @ 2022-07-20 18:45 守望人间 阅读(1943) 评论(0) 推荐(0) 编辑
摘要:python 库与 python 版本的兼容性问题 现象 python3.5 直接使用 pip 安装requests库后,再执行 pip 命令出现报错AttributeError: module 'os' has no attribute 'PathLike' 解决 发现是requests的依赖库c 阅读全文
posted @ 2022-07-05 15:39 守望人间 阅读(937) 评论(0) 推荐(0) 编辑
摘要:python 安装 mysqlclient 库 安装 mysqlclient 时可能会报错,缺少mysql_config,参考文档https://pypi.org/project/mysqlclient/ 安装 MySQL development headers and libraries Debi 阅读全文
posted @ 2022-05-07 15:14 守望人间 阅读(320) 评论(0) 推荐(0) 编辑
摘要:pyinstaller使用记录 需求 为了在没有 python 环境的电脑上运行 python 脚本,使用 pyinstaller 打包脚本为 exe 打包命令 pyinstaller -F .\main.py -n test -F 打包为一个 exe 文件 -n 打包后文件夹名称 打包静态文件 有 阅读全文
posted @ 2021-09-05 20:03 守望人间 阅读(63) 评论(0) 推荐(0) 编辑
摘要:需求 需要开机运行项目,使用systemctl来控制gunicorn开机启动 systemctl配置文件 在/usr/lib/systemd/system/下增加文件project.service,文件名根据需要命名,以.service结尾,文件内容: [Unit] # 描述 Description 阅读全文
posted @ 2021-08-01 10:56 守望人间 阅读(1088) 评论(0) 推荐(0) 编辑
摘要:python使用subprocess执行shell脚本 项目中需要在后端执行shell脚本,使用subprocess库的Popen对象 参考官方文档 import subprocess def execute_command_with_no_out(cmd, timeout): """ 执行shel 阅读全文
posted @ 2021-08-01 10:55 守望人间 阅读(932) 评论(0) 推荐(0) 编辑
摘要:需要使用aes加密,记录一下 import base64 from Crypto.Cipher import AES AES_KEY = 'aw123zsc212s9ju0' # It must be 16, 24 or 32 bytes long (respectively for *AES-12 阅读全文
posted @ 2021-05-13 16:43 守望人间 阅读(1259) 评论(0) 推荐(0) 编辑
摘要:之前一直都是使用requests,现在需要使用urllib,记录一下使用urllib进行post请求发送formdata。另外,还是requests好用。 import urllib.requestfrom urllib import parseurl = 'http://localhost:800 阅读全文
posted @ 2021-05-05 08:36 守望人间 阅读(93) 评论(0) 推荐(0) 编辑
摘要:pyminifier2.1,2.2不支持python3.6的 f-string >>> name = "Fred" >>> f"He said his name is {name}." 'He said his name is Fred.' >>> width = 10 >>> precision 阅读全文
posted @ 2020-12-29 11:14 守望人间 阅读(374) 评论(0) 推荐(0) 编辑
摘要:使用mysqlclient执行存储过程时,按正常的方法无法获取输出参数。使用如下方法获取: conn = MySQLdb.connect(**self.settings)cursor = conn.cursor()args = ('in', 'in', 'out') # 两个输入参数,一个输出参数c 阅读全文
posted @ 2020-10-22 10:19 守望人间 阅读(660) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示