关键文件
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/*
具体推送的仓库配置就不做赘述了
评论区