You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python setuptools排除tests包失败,寻求解决方案

解决setuptools无法排除tests包的问题

你的setup.py里有几个关键参数用错了,导致无法排除tests包,下面是问题分析和修正方案:

问题点分析

  • package_dir参数误用:find_packages(exclude=["tests"])返回的是要包含的包名称列表,但package_dir需要的是目录与包的映射关系(比如{"": "src"}表示根包在src目录下),不能直接把find_packages的结果赋值给它。
  • entry_points格式错误:这个参数需要是字典格式(比如定义控制台脚本),你写的"src"完全不符合要求,会导致配置无效甚至报错。
  • 未明确指定包的根目录,find_packages默认从当前目录找包,而业务代码在src下,会导致包识别混乱。

修正后的setup.py

import setuptools
from setuptools import setup, find_packages

setuptools.setup(
    name="awesome-app",
    version="1.0.0",
    # 指定包的根目录为src,让find_packages从这里查找包
    package_dir={"": "src"},
    # 包含所有找到的包,同时排除tests
    packages=find_packages(exclude=["tests"]),
    package_data={"": ["*.json"]},
    # 示例:如果需要定义控制台入口脚本,按此格式调整(根据实际需求修改)
    entry_points={
        "console_scripts": [
            "awesome-app = src.run:main"  # 假设run.py里的main函数是程序入口
        ]
    }
)

验证操作

重新执行命令:

python -m build --sdist

生成的源码包(dist目录下的.tar.gz文件)里就不会包含tests目录了。

内容的提问来源于stack exchange,提问作者KwarcPL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 03:27:09