乐趣区

关于后端:制作python包并上传pypi

平时写 Python, 须要用到一个新包时, 习惯了 pip install packageName, 写多了就会想, 这些包都是怎么来的? 本人能不能 ” 制作 ” 一个, 任何人也都能够通过 pip 装置?

有此想法, 躬行实践. 答案显然是必定的, 而且难度也绝没有想的那样大, 或者说 It is easy.

1. 编写代码

如要制作的包名为dashen, 新建如下目录构造

  • 其中两个 __init__.py 为空即可
  • README.md 写一些该 package 的介绍, 非必选
  • your_func.py是具体的性能实现, 在此示例如下:
def dashen_address():
    print('www.dashen.tech')


def dashen_master():
    print('shuang.cui')


def author_hometown():
    print('山东邹平')
  • setup.py内容如下:
import setuptools

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

setuptools.setup(
    # 包的散发名称,应用字母、数字、_、-
    name="dashen",
     # 版本号, 版本号标准:https://www.python.org/dev/peps/pep-0440/
    version="0.0.1",
    # 作者名
    author="fliter",
     # 作者邮箱
    author_email="i@dashen.tech",  
    # 包的简介形容
    description="我的第二个 python 包",
    # 包的具体介绍(个别通过加载 README.md)
    long_description=long_description, 
    # 和上条命令配合应用,申明加载的是 markdown 文件
    long_description_content_type="text/markdown",
    # 我的项目开源地址
    url="https://dashen.tech",
     # 如果我的项目由多个文件组成,咱们能够应用 find_packages()主动发现所有包和子包,而不是手动列出每个包,在这种状况下,包列表将是 example_pkg
    packages=setuptools.find_packages(),
    # 对于包的其余元数据(metadata)
    classifiers=[
         # 该软件包仅与 Python3 兼容
        "Programming Language :: Python :: 3",
        # 依据 MIT 许可证开源
        "License :: OSI Approved :: MIT License",
        # 与操作系统无关
        "Operating System :: OS Independent",
    ],
)

2. 账号注册及打包

  • 注册 Pypi
  • 更新 pip,setuptools 和 wheel

pip install --upgrade pip setuptools wheel

  • 切换到 setup.py 的同级目录, 进行打包

python setup.py sdist

会呈现两个新文件

3. 上传

上传 Pypi

pip install twine

(如果曾经装置 twine,跳过此步骤)

python -m twine upload dist/*

输出 Pypi 的账号及明码


4. 查看及测验


<font color:”red”> 完结, 撒花 </font>

本文由 mdnice 多平台公布

退出移动版