使用Python编程的都知道,Python的包安装非常的方便,一般都是可以pip来安装搞定:
pip install <package name>
pip的安装请前往:https://pip.pypa.io/en/stable/installing/
最近因为个人需求原因(其实就是因为代码没高光),发布了一个自己的pypi Python包,这里我大致分享如何发布自己的Pypi包一般过程。
首先介绍一下
python版本:3.7.5
相关模块:
setuptools 模块;
wheel 模块;
twine 模块;
这里以我们开源的QcureUi库作为实例来介绍一下如何将自己已经写好的且能正常使用的库发布到pypi吧。现在把我的项目根目录结构展示出来:
大致介绍一下每个文件是干嘛的吧:
- 1.QcureUi是我们应该写好能够正常调用的python包。准备开源。
- 2.LICENSE用来声明我们开源项目的协议。
- 3.README.md则是一个用来介绍我们项目的功能以及实用性。
- 4.setup.py用来填写我们开源库的一些基本信息(版本号等等)。
- 5.MANIFEST.in用来写入包内除python文件之外的成分。例如图片或者处理日志等需要导入的内容。
- 6.deployPyPi.bat中写入twine upload dist/*方便我们之后发布第三方库。
- 7.install_whl.bat中写入python setup.py bdist_wheel以及python setup.py sdist方便我的之后的打包工作。
主要在这里介绍一下setup.py的内容:
import setuptools
## 读取本地markdown文件方便我们对我们的库吹牛逼。
with open("README.md", "r", encoding='utf-8') as fh:
long_description = fh.read()
setuptools.setup(
name="QcureUi", # 包名
version="0.0.2", # 版本号
author="Lux", # 作者笔名
author_email="1223411083@qq.com", # 作者邮箱
description="Used for pyqt5 beautification", # 发布包简单介绍
long_description=long_description, # 将我们吹牛逼的草稿写入包用法中
long_description_content_type="text/markdown", # 用法的读取格式为markdown格式
url="https://github.com/pypa/sampleproject", # 项目地址
packages=setuptools.find_packages(), # 包需要装哪些python文件,setuptools.find_packages()则为根目录下全部python文件
include_package_data=True, # MANIFEST.in文件允许导入
zip_safe=False, # 是否打入压缩包
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
], # 包的最低使用要求
install_requires= [
'pywin32'
], # 此包运行需要哪些其余的第三方库
project_urls={
'Blog': 'https://blog.csdn.net/qq_45414559/article/details/105560090',
}, # 介绍包的项目地址
)
介绍一下MANIFEST.in文件中需要写入的内容:
include *.png
include *.json
include QcureUi/beautifyUi *.png
recursive-include QcureUi *.png *.json
具体格式和参数参考:https://docs.python.org/2/distutils/sourcedist.html
LICENSE文件若不会写入的话🤔
直接搬走就好:
Copyright (c) 2018 The Python Packaging Authority
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
接下来我们就该发布我们的第三方库了:
- 1.首先先进入到我们的pypi官网:https://pypi.org/
我们在这里先注册一个属于自己的账号,
记住自己的用户名以及密码,等下要用!
我们在这里先配置一下pypi源的问题。不是pip下载源,而是pypi上传源的问题。
~/.pypirc,文件内容如下:
[distutils]
index-servers=pypi
[pypi]
repository = https://upload.pypi.org/legacy/
username = ***********
password = ***********
账号密码写入刚才让你们记住的就好了。保存文件退出!
- 2.之后我们运行我们的bat文件。
- 首先运行install_whl.bat文件。
运行后会发现当前文件夹生成几个文件夹,先不用管
之后运行deployPyPi.bat文件。
我们就可以上传自己的第三方库到pypi官网啦。
(如果运行deployPyPi.bat后出现输入账号密码的情况时,说明~/.pypirc引入失败,重新配置。)
如果没有发现报错的话,那我们就上传成功了!
下载一下我们的第三方库来看看吧:
pip install QcureUi
我们可以看到:
安装成功!巨激动~