Python

分类下相关文章

生产环境部署 FastAPI + Nginx + Systemd 服务

测试开发环境 uvicorn server:app --reload 但是生产环境需要配置的项目要更多,例如: 指定端口号 如何利用多核。python 的历史问题 nginx 配置 systemd 配置 uvicorn 是什么 Uvicorn is a lightning-fast ASGI server implementation, using uvloop and httptools. 与 Gunicorn 一同使用 参考 uvicorn 及 FastAPI 的官方文档: https://www.uvicorn.org/#running-with-gunicorn https ...

阅读全文...

Python EasyGUI 调起文件选择窗口

由于 opencv 做图像识别需要测试大量的图片样本,逐一比对效果,以方便调整参数及处理逻辑。 如果写死文件路径,每次换图片都需要改代码,非常不方便;也不利于代码管理。 所以,我需要能用 python 调起文件选择窗口,选择图片,然后返回文件路径。 EasyGUI 找到一个非常合适的库,EasyGUI。很容易拼错成 EasyUI。 EasyGUI is a module for very simple, very easy GUI programming in Python. EasyGUI is different from other GUI libraries in that Easy ...

阅读全文...

python 代码格式化工具 black,类似 gofmt

从网上下载了一段 opencv 的 python 代码,代码风格异常粗放豪迈,不到 100 行的代码,几十处 pep8 格式警告。 手动改起来,太累了,所以想找一个类似 golang gofmt 那样的代码格式化工具,能一键搞定搞定。 方案一:YAPF Google 出品,类似 gofmt 的理念。可以定制化配置。 https://github.com/google/yapf 方案二:black 但是从 github star 数来看,black 这个格式化工具更流行。YAPF 12k star,black 25k star。(2022-02-10) https://github.com/ps ...

阅读全文...

Ubuntu 升级 Python 3.6 版本到 3.8

由于我要使用 tmuxp 替代 tmuxinator, 其依赖的 Python 最低版本是 3.7,而我本机的 Python 版本为 3.6。 所以,我要安装 3.8 版本,并将默认的 python3 命令指向 3.8。 系统环境 Ubuntu 18.04 (Windows WSL) Python 3.6.9 > python3 --version Python 3.6.9 Ubuntu 安装 Python 3.8 sudo apt install python3.8 将 python3.6 和 3.8 添加到 update-alternatives sudo update-al ...

阅读全文...

FastAPI 操作数据库

原本想使用 python orator 这个 ORM 方案。 但是发现搜索 FastAPI ORM 的方案,并没有人提到 orator。 我主要是担心第一次使用 FastAPI 这个异步框架,再配合上 orator 这类异常小众的 ORM,会不会踩坑。 所以,还是优先使用官方推荐的方案。至于是不是 ORM,不重要。 encode/databases FastAPI 官方文档里推荐的异步操作数据库的方案是 encode/databases。 参考: https://fastapi.tiangolo.com/advanced/async-sql-databases/ 不过里面的示例代码都是 dat ...

阅读全文...

pipreqs 自动生成 pip 依赖文件 requirements.txt

通过 pip 安装了一堆依赖,但是并没有自动生成/更新 requirements.txt。 非常不方便多开发环境的同步。这点确实不如 golang 规范。 于是找了个工具可以根据当前项目 import 的依赖,来自动生成 requirements.txt 文件。 pipreqs 的使用 安装 pipreqs pip install pipreqs 对当前目录生成 requirements.txt pipreqs 生成速度有点慢,需要耐心等待。生成的内容如下: fastapi==0.72.0 numpy==1.22.0 opencv_python==4.5.5.62 更新 require ...

阅读全文...

FastAPI Hello World 开发环境搭建

安装 FastAPI 依赖 pip install "fastapi[all]" 使用 all 安装,会自动安装上相关的依赖,例如 uvicorn 等。 Hello world server.py from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello World"} 参考: https://fastapi.tiangolo.com/tutorial/ ...

阅读全文...

Windows 11 安装 Python 3

为何要在 Windows 里安装 Python 既然有了 WSL,为何还要在 Windows 里安装 Python 呢?尝试一下 docker 也好啊? 主要是我发现在用 Python 做图像识别项目时,跟做逻辑明确类的项目有本质区别。那就是要根据输出结果来调整参数,而调整的依据往往时之前的图像输出,及下面链接里那种 colorbar 进行对比。这些在纯 terminal 中是无法实现的。还是需要依赖于桌面系统。 https://scipython.com/blog/counting-seeds-with-python/ Python 版本的选择 现在 Python 的最新版本已经到了 3.1 ...

阅读全文...

使用 python 将网站上多页表格数据导出 Excel 文件

公司找外包公司做了个大学生创新大赛作品上传及报名系统,但是离谱的是,活动结束后外包公司就把服务器关停了。参数数据及作品文件都无法下载。于是协商这个公司把服务器启动两天,等我们下载完了,再关停。 由于没有自动导出功能,于是我写了个 python 程序做了自动下载。 处理逻辑 [x] 在浏览器中,抓取数据请求。调整参数,一次性获取所有数据的 json 格式 [x] json 数据保存到本地文件 [x] python 读取 json 文件,参照网站上的字段顺序进行解析。并保存成 csv 文件 [x] 使用 wps 新建 Excel 表格文件,通过数据导入功能,将 csv 文件导入。注意设置分隔符, ...

阅读全文...

Kaggle 安装三方 Python 依赖包

例如,我想在 kaggle 中使用 PlantCV,但是发现 kaggle 并没有内置 PlantCV 这个包。 新建一个 code cell,输入: !pip install plantcv 报错: WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0 ...

阅读全文...

Kaggle 上传本地图片

由于需要在 Kaggle 中读取样本图片,所以想把采集的图片上传到 Kaggle 空间中。 上传图片及 Python 读取步骤 点击 kaggle 项目右上角的 “add data” 按钮 在弹出对话框中,点击右上角的 “Upload” 按钮 上传图片即可,可以拖拽。保存时,需要指定 dataset 的名称 上传成功后,点击右上角的 data - input - dataset 名 - 图片名,就可以看到该图片的路径 将路径复制到代码中,即可读取或操作 例如: from IPython.display import Image Image("../input/wheat-ima ...

阅读全文...

ModuleNotFoundError: No module named '_ctypes'

从 git 仓库 clone 下来的已有 Python项目,在使用 pipenv install 安装依赖时报错: An error occurred while installing backpack==0.1 ERROR: Couldn't install package: backpack 虽然看起来时某个依赖包没有安装成功,但根本原因是错误: ModuleNotFoundError: No module named '_ctypes' 解决方法 sudo apt-get install libffi-dev pyenv uninstall 3.8.6 pyenv install ...

阅读全文...

Neither 'pyenv' nor 'asdf' could be found to install Python

背景 系统环境 Ubuntu 18.04 Python 3.6 但是,这个 Python 项目在 pipenv 配置文件中指定的 python 版本是 3.8。 所以,执行 pipenv shell 命令时,报错: $ pipenv shell Warning: Python 3.8 was not found on your system... Neither 'pyenv' nor 'asdf' could be found to install Python. You can specify specific versions of Python with: $ pipenv -- ...

阅读全文...

E: Unable to locate package pipenv

系统环境 Ubuntu 18.04 Python 3.6 报错信息 在执行 apt install pipenv 时,报错: E: Unable to locate package pipenv 解决方法 使用 pip 安装 pipenv sudo apt install python3-pip pip3 install pipenv 重启 shell。即可使用 pipenv ...

阅读全文...

RuntimeError: 'cryptography' package is required for sha256_password or caching_sha2_password auth methods

系统环境 Ubuntu 20.04 MySQL 8.0 Python 3.8 问题描述 在安装了 PyMySQL 之后: pipenv install PyMySQL 进行 MySQL 数据库访问时,直接报错: RuntimeError: 'cryptography' package is required for sha256_password or caching_sha2_password auth methods 看上去是 MySQL 8 引入的账号问题。 解决方法 pipenv install PyMySQL[rsa] 再次操作数据库就可以了。 Pipfile 的变化 p ...

阅读全文...