本文为观看《成为开源模块创始人需多久?【10分钟制作开源的pip模块】》的笔记https://www.bilibili.com/video/av457154290?p=1&t=37

模块初始

pip install 模块名字

对于模块开发者需要完成三件事

  • 编写模块
  • 将模块进行打包
  • 上传到PyPI(需要注册自己的PyPI账号)

对于模块的使用者,只需要做两件事

  • 通过pip install去安装模块
  • 调用模块

第一步:创建文件夹

根据要求创建如下文件,并且填写内容

└─UncleDongPackage
    │  LICENSE         # 声明,给模块使用者看,使用者是否可以免费用于商业用途等等
    │  README.md       # 模块介绍
    │  setup.py        # 给setuptools提供信息的脚本(名称,版本等)
    │
    ├─demos            #使用案例
    └─UncleDongPackage # 模块代码目录
            __init__.py

1.1 License

一半的开源软件会选择相对宽泛的许可证MIT(The MIT License),也就是坐着保留版权,没有其他任何限制

Copyright (C) <year> <copyright holders>
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.

更多许可可以参考:https://choosealicense.com/

1.2 readme

readme就说对于当前模块的描述信息,用markdown格式编写

这是我自己写的第一个包

此文件也可以写模块的简单使用手册,如果手册太复杂的话建议再创建一个doc文件夹用来存放手册

1.3 demos

模块的使用案例,可有可无

1.4 setup.py
import setuptools

with open("README.md", "r") as fh:
    long_description = fh.read()

setuptools.setup(
    name="UncleDongPackage", # 模块名称
    version = "1.0", # 当前版本
    author="UncleDong", # 作者
    author_email="20171000970@cug.edu.cn", # 作者邮箱
    description="这是UncleDong的第一个模块!", # 简短介绍
    long_description=long_description, # 模块详细介绍
    long_description_content_type="text/markdown", # 模块详细介绍格式
    packages=setuptools.find_packages(), # 自动找到项目中导入的模块
    # 模块相关的元数据(更多描述信息)
    classifiers=[
        "Programming Language :: Python :: 3",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
    ],
    # 依赖模块
    install_requires=[
        'pillow'
    ],
    python_requires=">=3",
    # url="https://github.com/UncoDong", # github地址
)



1.5 UncleDongPackage(主体部分)

我再自己的项目里写的文件内定义了一个简单的print函数
在这里插入图片描述在demos中可以看到应该如何调用该模块
在这里插入图片描述

from UncleDongPackage import ohhhhhhhhh

ohhhhhhhhh.func() # "恭喜你完成了第一个包OHHHHHHHHHHHHHHHHHHHHH"

第二步 代码打包+上传

上述步骤中将文件夹和代码编写好了之后,就需要对代码进行打包处理

2.1 安装打包工具

打包代码工具首先需要安装setuptoolswheel两个工具,可以单独安装,也可以pip安装。如果已经安装的话可以用一下命令进行升级/更新
python -m pip install --upgrade setuptools wheel

2.2 打包代码

进入到setup.py所在的那个目录中,执行以下命令(一定要提前先安装好setuptoolswheel两个工具)
python setup.py sdist bdist_wheel
在这里插入图片描述
此时目录中可以看到多了两个文件
在这里插入图片描述
这两个文件需要上传到PyPi上

第三步 上传到Pypi

3.1 注册账号

注册完毕后可以进入到自己的项目中心,查看已经发布的文件
在这里插入图片描述

3.2 安装上传工具
  • 安装twine
python -m pip install --upgrade twine
或者
pip install --upgrade twine
  • 上传
    url地址是固定的,路径是生成的dist文件夹
python -m twine upload --repository-url https://upload.pypi.org/legacy dist/*

根据提示输入账号和密码后,就可以上传成功了!

在这里插入图片描述
在这里插入图片描述

3.3 pip安装

输入Pypi的镜像源即可下载刚才上传的包

pip install UncleDongPackage==1.0 -i  https://pypi.Python.org/simple/

在这里插入图片描述导入下载的包,就可以用了!
在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐