制作模块

pip install 模块名字

1,编写模块
2,将模块进行打包
3,上传到PyPI(需要先注册PyPI账号)

  • 注册PyPI账号
  • 安装上传工具
  • 基于工具进行上传
    假设,现在要做一个名称叫 fucker 的模块,
    第一步 项目文件夹
fucker
├── LICENSE           # 声明,给模块使用者看,说白了就是使用者是否可以免费用于商业用途等。
├── README.md         # 模块介绍
├── demos             # 使用案例
├── fucker            # 模块代码目录
│   └── __init__.py
└── setup.py          # 给setuptools提供信息的脚本(名称、版本等)

1.1 License
LICENSE文件就是咱们模块的许可证,给模块使用者看,说白了就是使用者是否可以免费用于商业用途等。一般开源的软件会选择相对宽泛许可证 MIT,即:作者保留版权,无其他任何限制。

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

1.3 demos目录
demos一般会写一些该模块使用的示例,用于使用者快速可以将模块应用到生成中。

1.4 setup.py
setup.py文件其实是一个配置文件,用于给setuptools提供一些模块相关的信息,如:模块名称、模块版本、适用的python版本、作者、github地址等。

import setuptools
with open("README.md", "r") as fh:
    long_description = fh.read()
setuptools.setup(
    name="fucker",  # 模块名称
    version="1.0",  # 当前版本
    author="wupeiqi",  # 作者
    author_email="wupeiqi@live.com",  # 作者邮箱
    description="一个非常NB的包",  # 模块简介
    long_description=long_description,  # 模块详细介绍
    long_description_content_type="text/markdown",  # 模块详细介绍格式
    # url="https://github.com/wupeiqi/fucker",  # 模块github地址
    packages=setuptools.find_packages(),  # 自动找到项目中导入的模块
    # 模块相关的元数据
    classifiers=[
        "Programming Language :: Python :: 3",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
    ],
    # 依赖模块
    install_requires=[
        'pillow',
    ],
    python_requires='>=3',
)

注意:setuptools是一个包管理工具,可用于打包和安装模块。
1.5 fucker目录
插件内容,可以将相关代码在此处编写,如:wp.py

def func():
    print("一个神奇的包")

最后的文件夹如下:

fucker
├── LICENSE
├── README.md
├── demos
├── fucker
│   ├── __init__.py
│   └── wp.py
└── setup.py

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

2.1 安装打包工具(已有无需重复安装)
打包代码需先安装setuptools和wheel两个工具,可以单独安装,也可以安装pip,从而自动安装这两个工具。
已安装用户,如要更新setuptools和wheel两个工具,可通过如下命令:

python -m pip install --upgrade setuptools wheel

2.2 打包代码

python setup.py sdist bdist_wheel
fucker
├── LICENSE
├── README.md
├── fucker
│   ├── __init__.py
│   └── wp.py
├── fucker.egg-info
│   ├── PKG-INFO
│   ├── SOURCES.txt
│   ├── dependency_links.txt
│   └── top_level.txt
├── build
│   ├── bdist.macosx-10.6-intel
│   └── lib
│       └── fucker
│           ├── __init__.py
│           └── wp.py
├── demos
├── dist
│   ├── fucker-0.0.1-py3-none-any.whl
│   └── fucker-0.0.1.tar.gz
└── setup.py

2.3 发布模块(上传)
文件打包完毕后,需要将打包之后的文件上传到PyPI,如果想要上传是需要先去 https://pypi.org/ 注册一个账号。

  • 安装用于发布模块的工具:twine 【已安装无需重复安装】
python -m pip install --upgrade twine
或
pip install --upgrade twine
# 提示:python -m 的作用是 run library module as a script (terminates option list)
  • 发布(上传)
python -m twine upload --repository-url https://upload.pypi.org/legacy/  dist/*
或
twine upload --repository-url https://upload.pypi.org/legacy/  dist/*

上传时,提示需要输入PyPI的用户名和密码.

posted @ 2022-01-10 22:27  下个ID见  阅读(122)  评论(0)    收藏  举报