当前位置:首页 > Python > 正文

Python打包入门指南(手把手教你编写setup.py实现项目分发)

在Python开发中,如果你希望将自己的代码打包并分享给他人使用,或者上传到PyPI(Python Package Index)供全球开发者安装,那么编写一个setup.py文件是必不可少的一步。本文将从零开始,详细讲解如何编写setup.py,帮助你轻松完成Python项目的打包与分发。

什么是setup.py?

setup.py 是一个使用setuptools(或旧版distutils)来定义Python包元数据和依赖关系的脚本。它告诉Python如何构建、安装和分发你的项目。

Python打包入门指南(手把手教你编写setup.py实现项目分发) Python setup.py  Python打包教程 setuptools使用 Python项目分发 第1张

准备工作

在开始之前,请确保你已安装最新版本的setuptoolswheel

pip install --upgrade setuptools wheel

项目目录结构

假设你有一个简单的Python项目,目录结构如下:

myproject/├── mypackage/│   ├── __init__.py│   └── core.py├── README.md├── LICENSE└── setup.py

编写setup.py

现在,我们来创建setup.py。以下是一个完整且规范的示例:

from setuptools import setup, find_packagessetup(    name="mypackage",                     # 包名,必须唯一    version="0.1.0",                      # 版本号    author="Your Name",    author_email="your.email@example.com",    description="A short description of your package",    long_description=open("README.md").read(),    long_description_content_type="text/markdown",    url="https://github.com/yourusername/mypackage",  # 项目主页    packages=find_packages(),             # 自动发现所有包    classifiers=[        "Programming Language :: Python :: 3",        "License :: OSI Approved :: MIT License",        "Operating System :: OS Independent",    ],    python_requires='>=3.6',              # 支持的Python版本    install_requires=[                    # 依赖列表        "requests",        "numpy",    ],    entry_points={                        # 可选:命令行入口点        "console_scripts": [            "mycommand=mypackage.core:main",        ],    },)

关键参数说明

  • name:包的名称,上传到PyPI后别人通过pip install <name>安装。
  • version:遵循语义化版本(如 1.0.0)。
  • packages:使用find_packages()自动包含所有子包。
  • install_requires:列出运行时依赖,这些包会在安装时自动安装。
  • entry_points:用于创建命令行工具,非常实用。

构建与测试

编写好setup.py后,你可以本地构建分发包:

# 构建源码分发包和wheel包python setup.py sdist bdist_wheel

构建完成后,会在dist/目录下生成.tar.gz.whl文件。你可以用以下命令本地安装测试:

pip install dist/mypackage-0.1.0-py3-none-any.whl

SEO关键词回顾

在本教程中,我们重点讲解了以下核心概念,这些也是开发者常搜索的Python setup.py相关关键词:

  • Python setup.py
  • Python打包教程
  • setuptools使用
  • Python项目分发

结语

掌握setup.py的编写是每个Python开发者进阶的必经之路。通过本文的详细步骤,即使是编程小白也能顺利完成自己的第一个可分发Python包。下一步,你可以学习如何使用twine将包上传到PyPI,让更多人使用你的作品!