是否可以使用 setuptools 为 find_packages() 提供多个源目录?

Is it possible to give multiple source dir to find_packages() using setuptools?

我有一个 python 项目想要使用 setuptools 进行分发。

我想使用find_packages()功能。 python 个源码包位于多个目录:

proj
  +--src1
  |    +--pkg1
  |    |    +-- (__init__.py and sources)
  |    +--pkg2
  |    |    +-- (__init__.py and sources)
  +--src2
       +--pkg3
       |    +-- (__init__.py and sources)
       +--pkg4
            +-- (__init__.py and sources)

如果我使用 find_packages('proj/src1'),pkg3 和 pkg4 将不会打包到发行版中。

如果我使用 find_packages('proj') 则根本不会列出任何包。

是否可以同时使用多个源目录和find_packages()

为什么不自己构建包列表?

packages=[pkg for subdir in os.listdir('proj')
          if os.path.isdir(os.path.join('proj', subdir))
          for pkg in find_packages(os.path.join('proj', subdir))]

find_packages() returns 一个列表。您可以多次调用它并合并列表:

find_packages('proj/src1') + find_packages('proj/src2')