参考文档
发布
1. 安装打包依赖工具
pip install setuptools
2. 安装上传工具
pip install twine
3. 注册PYPI官网个人用户
4. 在和项目同级目录创建setup.py
代码如下:
from setuptools import setup, find_packages
GFICLEE_VERSION = '2020.8.4.6'
setup(
name='cfastproject',
version=GFICLEE_VERSION,
packages=find_packages(),
include_package_data=True,
entry_points={
"console_scripts": ['cfastproject = fastproject.main:main']
},
install_requires=[
"django", "fastapi", "gcp_mixed_logging", "asgi_request_id",
"uvicorn", "google-cloud-secret-manager", "pandas",
"peewee_async", "aiopg", "aiohttp"
],
url='https://github.com/ChuXiaoYi/fastproject',
license='GNU General Public License v3.0',
author='Xiaoyi Chu',
author_email='[email protected]',
description='More convenient to create fastapi project'
)
setup参数说明:
名称 | 描述 | 说明 |
---|---|---|
name | 项目名称 | 不可重复 |
version | 项目版本 | 保证每次发布都是版本都是唯一的 |
packages | 项目本身的代码 | |
include_package_data | 是否包括非包文件 | |
entry_points | 项目主入口 | 安装成功后,在命令行输入cfastproject 就相当于执行了fastproject.main.py 中的main() 了 |
install_requires | 项目依赖包 | |
url | 项目地址 | |
license | license | |
author | 项目作者 | |
author_email | 项目邮箱 | |
description | 项目描述 |
5. 打包前检查
通过这一步可以检查setup.py中是否有错误,例如版本号错误
python setup.py check
6. 打包
python setup.py sdist
7. 发布前准备
-
在home目录下创建.pypirc 文件,写入pypi账户密码,这样每次上传就不需要在重复输入了
[distutils] index-servers = pypi [pypi] username:username password:password
-
本地测试
python setup.py install
安装成功后,可以通过上面定义的命令执行一次,如果成功证明安装成功,可以继续打包了
8. 注册
上传前需要注册一下包的名称,因为这个名称必须独一无二,如被占用则注册不通过。
python setup.py register
9. 检查是否符合pypi要求
twine check dist/**_.tar.gz
10. 上传
twine upload dist/**_.tar.gz
上传成功后,到官网上搜索看看包有木有吧~
更新
1. 更新代码,并修改setup.py中的版本号
2. 更新包
python setup.py sdist bdist
3. 上传
twine upload dist/**_.tar.gz
4. 更新包
pip install --upgrade cfastproject
关于上传非包文件
在setup.py
同级目录下创建MANIFEST.in
文件,里面的内容是需要上传的文件,例如,如果要包括项目下的所有文件:
recursive-include fastproject *
为了将这些文件在安装时复制到site-packages中的包文件夹,需要将setup中的include_package_data设置为True