Python脚本如何打包发布_setuptools入门

3次阅读

setuptools是python官方推荐的构建和分发工具,用于将项目打包为wheel或源码包以便pip安装及发布到pypi,替代distutils并支持依赖声明、入口点和自动发现包等功能。

Python脚本如何打包发布_setuptools入门

什么是setuptools,为什么用它

setuptools 是 Python 官方推荐的构建和分发工具,用来把你的脚本、模块或项目打包成可安装的格式(如 wheel 或源码包),方便别人用 pip install 一键安装,也便于你自己发布到 PyPI。它替代了早期的 distutils,支持依赖声明、入口点(entry points)、自动发现包等功能。

准备一个最简可打包项目结构

假设你写了一个小工具 hello_cli.py,想把它打包成命令行程序。先组织好目录:

my_hello/
  ├── hello_cli.py
  ├── README.md
  └── setup.py

其中 hello_cli.py 包含一个可调用的 main 函数:

立即学习Python免费学习笔记(深入)”;

def main():
    print(“Hello from my package!”)

编写 setup.py —— 核心配置文件

这是 setuptools 的“说明书”,告诉 pip 这个包叫什么、包含什么、依赖谁:

from setuptools import setup, find_packages

setup(
    name=”my-hello”,
    version=”0.1.0″,
    description=”A simple CLI greeting tool”,
    author=”Your Name”,
    py_modules=[“hello_cli”],
    entry_points={
        “console_scripts”: [
            “hello=hello_cli:main”
        ]
    },
)

  • py_modules 列出单个 .py 文件(不是包);如果是包,改用 packages=find_packages()
  • entry_points 让安装后生成命令行命令 hello,直接调用 hello_cli.main
  • 不写 install_requires 就表示无第三方依赖;有依赖就加上,例如 install_requires=[“requests”]

构建并本地测试安装

在项目根目录(即 setup.py 所在目录)运行:

python -m build

会生成 dist/my_hello-0.1.0-py3-none-any.whl。接着本地试装:

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

安装成功后,终端输入 hello 就能看到输出。卸载用 pip uninstall my-hello

注意:推荐使用虚拟环境测试,避免污染全局 Python 环境。

text=ZqhQzanResources