标签搜索

目 录CONTENT

文章目录

打包python项目为pypi包

陈铭
2021-05-25 / 0 评论 / 0 点赞 / 145 阅读 / 692 字 / 正在检测是否收录...

关键文件

setup.py

setup.py是setuptools的构建脚本。它告诉setuptools你的包(例如名称和版本)以及要包含的代码文件。

import setuptools

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

setuptools.setup(
    name="example-pkg-your-username",
    version="0.0.1",
    author="Example Author",
    author_email="author@example.com",
    description="A small example package",
    long_description=long_description,
    long_description_content_type="text/markdown",
    url="https://github.com/pypa/sampleproject",
    packages=setuptools.find_packages(),
    classifiers=[
        "Programming Language :: Python :: 3",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
    ],
    python_requires='>=3.6',
)

name 是包的分发名称。只能包含字母、数字和中划线。但是要保证在 pypi.org上没有重名。请务必使用您自己的包名称更新此内容,因为这样尽可能的能避免和其他包名冲突。

version 是包版本。看 PEP 440有关版本的更多详细信息。

author 和author_email 用于识别包的作者。

description 是一个简短的,一句话的包的总结。

long_description是包的详细说明。这显示在PytPI的包详细信息包中。在一般情况下,README.md作为描述信息是一种常见模式。

long_description_content_type告诉索引什么类型的标记用于长描述。上面代码中,这个值为Markdown。

url是项目主页的URL。对于许多项目,可以指向GitHub,GitLab,Bitbucket或类似代码托管服务的链接。

packages是应包含在分发包中的所有Python 导入包的列表。我们可以使用find_packages()自动发现所有包和子包,而不是手动列出每个包。在这种情况下,包列表将是example_pkg,因为它是唯一存在的包。

classifiers给出了你的包一些额外的元数据。在上面代码中,该软件包仅与Python 3兼容,根据MIT许可证进行许可,并且与操作系统无关。您应始终至少包含您的软件包所使用的Python版本,软件包可用的许可证以及您的软件包将使用的操作系统。

README.md

依据需求写入说明

# Example Package

This is a simple example package. You can use
[Github-flavored Markdown](https://guides.github.com/features/mastering-markdown/)
to write your content.

src文件夹

一般python项目的源码放在src文件夹下,当然只是一个文件夹而已,不一定都是src命名的

位置

setup.py、README.md、src文件夹请放在同级目录下

打包推送

打包

python setup.py sdist bdist_wheel

推送

twine upload dist/*

具体推送的仓库配置就不做赘述了

0

评论区