一个简单的项目
packaging_tutorial/
example_pkg/
__init__.py
需要example_pkg/__ init__.py
将该目录作为包导入,并且可以只是一个空文件
创建软件包文件
下面您将创建下面文件来打包项目,并为分发做准备。
packaging_tutorial/
example_pkg/
__init__.py
setup.py
LICENSE
README.md
创建 setup.py文件
import setuptools
with open("README.md", "r") as fh:
long_description = fh.read()
setuptools.setup(
name="example-pkg-YOUR-USERNAME-HERE", # Replace with your own 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 是包的名称,确保不会在上传包的时候和仓库中的其他包重名
- version 是包的版本
- author 和 author_email用来表名包的作者
- description 是简单的一句话描述改包
- long_description 是包装的详细说明。这在Python软件包索引的软件包详细信息软件包中显示。在这种情况下,详细描述是从README.md加载的,这是一种常见模式
- long_description_content_type 声明描述文档的格式
- url 代表改项目的首页地址,对于很多项目来说可能是github,gitLab等
- packages 需要打包的目录列表, 我们可以使用find_packages()自动发现所有包和子包
打包
检查预发是否有错误
python setup.py check
打包
python setup.py bdist_wheel
# 打成egg包
# python setup.py bdist_egg
安装本地包
python setup.py install
最终该包在类似目录为/Library/Python/2.7/site-packages
下面
网友评论