是否可以使用setuptools为find_packages()指定多个source dir?

2024-10-03 09:10:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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()?在


Tags: and项目函数py目录initpackagesfind
2条回答

find_packages()返回一个列表。您可以调用它几次,然后组合列表:

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

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

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))]

相关问题 更多 >