会发布属于自己的pypi库么?不会的话来瞧瞧吧~

使用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

我们可以看到:
在这里插入图片描述
安装成功!巨激动~


最后还是希望你们能给我点一波小小的关注。

奉上自己诚挚的爱心💖

评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

꧁༺北海以北的等待༻꧂

欢迎为萌新程序员打赏~谢谢各位

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值