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

Python包构建问题:如何保持foo父目录层级结构安装

解决方案

1. 调整文件目录结构

确保setup.py位于foo目录的同级目录,而非foo内部,正确目录结构如下:

project_root/
 setup.py
 foo/
  __init__.py
  bar_module_one/
   __init__.py
   do_something_cool.py
  buzz_module_two/
   __init__.py
   youre_lazy.py

2. 简化setup.py配置

删除多余的package_dir参数,find_packages()会自动从setup.py所在目录识别根包及其子包。修改后的setup.py内容:

from setuptools import find_packages, setup

setup(
    version="0.1.0",
    name="foo",
    packages=find_packages(),
)

3. 验证安装效果

在project_root目录下执行安装命令:

pip install .

安装完成后,即可使用目标导入方式:

from foo.bar_module_one.do_something_cool import yo

补充说明

  • foo/__init__.py可以是空文件,但必须存在,这是Python将该目录识别为包的必要条件。
  • 若需显式指定包,也可直接设置packages=["foo", "foo.bar_module_one", "foo.buzz_module_two"],不过find_packages()会自动递归查找所有子包,更便捷。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 13:22:36