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

如何列出Python包中包含的所有文件(类似git ls-files功能)

Python打包场景下列出最终包含文件的方法

Python打包体系存在等效于git ls-files的功能,无需完成完整打包流程即可拿到最终会被纳入包的全量文件列表,不同配置场景的实现方式如下:

传统setuptools方案(基于setup.py + MANIFEST.in配置)

  • 查看源发行版(sdist)包含的所有文件,直接执行:
    python setup.py sdist --list
    该命令会逐行输出所有被纳入sdist包的文件路径,无冗余日志,可直接用于对比排查非预期文件。
  • 不需要实际生成打包文件的场景,可添加dry-run参数:
    python setup.py sdist --dry-run
  • 要排查wheel包的包含文件,替换为wheel对应命令即可:
    python setup.py bdist_wheel --list

现代打包方案(基于pyproject.toml配置)

如果使用build、poetry、hatch等符合PEP 621标准的现代打包工具:

  • 使用官方build工具:执行python -m build --sdist --outdir /tmp后,通过tar tf /tmp/[包名]-[版本号].tar.gz直接列出所有打包文件
  • 使用poetry:执行poetry build --format sdist后,通过tar tf dist/[包名]-[版本号].tar.gz查看内容

规则不生效排查提示

MANIFEST.in的过滤规则按从上到下的顺序执行,后定义的规则会覆盖之前的规则;setup.py中配置的exclude参数仅作用于package_data,不会覆盖MANIFEST.in定义的文件包含规则,非代码类资源文件的过滤需要优先修改MANIFEST.in配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:15:04