概述
本文介绍发布pip包过程
主要分为写代码,注册账号和发布包,写文档。
写代码
总体代码目录结构如下:
- 项目根目录文件夹
- 包名文件夹
- 子包1文件夹
__init__.py
子包11.py
子包12.py
- 子包2文件夹
__init__.py
子包21.py
子包22.py
子包3.py
__init__.py
setup.py
README.md
其中__init__py
可以为空文件,主要标识这个文件夹是个包,也可以写上__all__=["子包1文件夹","子包2文件夹","子包3"]
,内容表示当前包有哪些内容,也可以写其他python代码,如根据不同平台导入不同包,但是不建议写复杂操作和太多逻辑。
其中setup.py
可以参考下面内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| import pathlib from setuptools import setup
here = pathlib.Path(__file__).parent.resolve()
long_description = (here / 'README.md').read_text(encoding='utf-8')
setup( name='pynlfff', version='0.2.0', description='python for nlfff', long_description=long_description, long_description_content_type='text/markdown', url='https://github.com/ZanderZhao/pynlfff', author='ZhaoZhongRui', author_email='zhaozhongrui21@mails.ucas.ac.cn', license='MIT', keywords='python nlfff', packages=[ 'pynlfff.pyprepare', 'pynlfff.pypreprocess', 'pynlfff.pyproduct', 'pynlfff.pyplot', ], install_requires=['numpy', 'h5py', 'matplotlib'], python_requires='>=3' )
|
注册账号和发布
打包文件
在项目根目录文件夹下执行
1 2 3 4 5 6
| python setup.py sdist
pip install wheel python setup.py bdist_wheel
|
发布包
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
python setup.py sdist upload
python setup.py bdist_wheel upload
pip install twine twine upload dist/*
|