构建包含父文件夹的Python包结构

1 投票
1 回答
25 浏览
提问于 2025-04-13 16:49

我正在创建一个Python包,里面有这样的结构:

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

setup.py文件中,我写了以下内容:

from setuptools import find_packages, setup


setup(
    version="0.1.0",
    name="foo",
    packages=find_packages(),
    package_dir={"foo": "foo"},
)

我现在搞不清楚怎么才能让这个包安装后保持这个结构。现在它只安装了bar_module_one/buz_module_two/,但我希望这些模块能作为foo的一部分被安装。我想能够这样使用:from foo.bar_module_one.do_something_cool import yo

1 个回答

0

你可以通过在 setup.py 文件中使用 package_dir={"": "foo"} 来列出整个包,具体可以参考这个链接:setup.py 列出整个包

from setuptools import find_packages, setup

setup(
    version="0.1.0",
    name="foo",
    packages=find_packages(),
    package_dir={"": "foo"},
)

我不太确定,但你可能需要调整一下你的项目结构,把 foo 目录作为父目录添加进来:

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

撰写回答