发布Kotti2 的0.1版本
好几年的愿望,终于实现了!
当年看到web.py ,就对该web框架赞不绝口,后来,web.py作者不幸逝世
后来就入了pyramid web框架的门,并发掘出Kotti这个优秀框架,可惜,刚刚得知,Kotti的作者已经于两年前逝世了....怪不得我一直等待该作者升级依赖库pyramid到2.0版本,结果近两年来一点动静也没有。
其实从看到Kotti的时候,我就想升级依赖库pyramid到2.0版本,在等待作者升级的期间,也曾几度想自己动手升级,但是由于水平有限,一动手就放弃了。在有了gpt大模型后,也有几次跃跃欲试,但不管是Trae还是Roo等AI助手,都还差那么一咩咩。当然当时自己对大模型的使用也不太熟练。
在碰到Auto-Coder之后,我的梦想终于在逐渐变成现实。首先不太困难,就把pyramid的版本从1.x升级到2.x :使用auto-coder将kotti项目的pyramid依赖从1.x升级到2.x,将SQLALchemy从1.x升级到2.x-CSDN博客
后面一步步升级了其它一些库,比如SQLALchemy、bcrypt、bleach等。
最后又升级了js.jquery库:https://skywalk.blog.csdn.net/article/details/148613713?spm=1011.2415.3001.5331
先检查readme.txt setup.cfg等文件。
python3 -m pip install --upgrade build
先按照提示生成readme.txt setup.cfg等文件,然后进行build:
python3 -m pip install --upgrade build
python3 -m build
经过实践,比如版本号的设置,setup.py文件比setup.cfg起效。
这样就有了两个文件在dist目录里:
ls dist/
jikuai-0.0.1-py3-none-any.whl jikuai-0.0.1.tar.gz
python3 -m pip install --user --upgrade twine
python3 -m twine upload --repository pypi dist/*
制作pip包并上传pypi,只需要执行命令:
python3 -m pip install --upgrade build
python3 -m build
python3 -m twine upload --repository pypi dist/*
此步参考原文链接:https://blog.csdn.net/skywalk8163/article/details/120795382
以下是Python项目上传至PyPI的完整流程,涵盖最新标准配置(无需setup.py,优先使用pyproject.toml
):
your_project/ ├── src/ # 核心代码目录(必须) │ └── your_package/ # 包名目录 │ ├── __init__.py # 包标识文件(可空) │ └── module.py # 功能模块 ├── tests/ # 测试目录(可选) ├── pyproject.toml # 构建配置文件(必须):ml-citation{ref="3,5" data="citationList"} ├── README.md # 项目说明文档(必须):ml-citation{ref="6" data="citationList"} ├── LICENSE # 开源许可证(必须):ml-citation{ref="6" data="citationList"} └── .gitignore # Git忽略规则(可选)
pyproject.toml
(现代打包标准)
[project]
name = "your-package-name" # PyPI唯一标识
version = "0.1.0"
authors = [{ name="Your Name", email="[email protected]" }]
description = "项目简短描述"
readme = "README.md"
license = { file="LICENSE" }
classifiers = [ # 分类标签(可选)
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License"
]
[project.urls]
homepage = "https://github.com/your/project"
README.md
使用Markdown编写项目文档(安装/使用说明)6
LICENSE
选择并添加开源许可证(如MIT)6
安装依赖工具
pip install build twine # 打包工具+上传工具:ml-citation{ref="5,11" data="citationList"}
打包项目
python -m build # 生成dist/目录下的.whl和.tar.gz文件:ml-citation{ref="3,5" data="citationList"}
获取PyPI API Token
pypi-
开头的Token字符串(仅显示一次)上传到PyPI
twine upload dist/*
__token__
pip install your-package-name # 测试是否可安装:ml-citation{ref="6" data="citationList"}
问题 | 解决方案 |
---|---|
包名冲突 | 在PyPI搜索确认包名唯一性6 |
上传失败(HTTP 400) | 检查pyproject.toml 中name 是否重复10 |
TestPyPI测试 | 先用twine upload -r testpypi dist/* 测试3 |
制作并上传到pypi就是这么三步:
python3 -m pip install --upgrade build
python3 -m build
python3 -m twine upload dist/*
在实际上传kotti2项目中,发现它还有依赖,就是kotti_image和kotti_tinymce ,这样就需要再去升级那两个项目,并上传pypi。
目前已经把kotti2上传pypi,但是项目还有问题,kotti_image和kotti_tinymce 升级到kotti2_image和kotti2_tinymce 后,测试未通过,且fanstatic库在python3.12下也有些问题,这些问题交织在一起,整个项目处于搁置状态。
当前kotti2 在pypi的版本为0.1.2