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

如何使用setuptools实现期望的Python包分发结构?

问题原因与解决办法

你的package_dir和packages.find配置本身是正确的,能让setuptools定位到scripts/layers下的mypackage。但sdist默认会把项目根目录下的所有文件(包括pyproject.toml、setup.py、setup.cfg)以及整个scripts目录结构都打包进去,这才导致分发后的结构不符合预期。

要实现只将mypackage放在分发包根目录的目标,需要做以下调整:

  • 创建MANIFEST.in文件
    在项目根目录新建MANIFEST.in,写入以下内容,明确指定只包含mypackage的所有文件,排除其他无关内容:

    recursive-include scripts/layers/mypackage *
    
  • 验证配置效果
    运行sdist命令后,解压生成的tar包,就能看到mypackage直接位于根目录下,不再带有scripts/layers的层级结构,也不会包含项目根目录的配置文件。

补充说明:如果你的setup.py没有实际逻辑,可以直接删除,现在仅靠pyproject.toml和setup.cfg就能完成包的构建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 08:07:13