所以我有一个像这样的文件夹结构:
pckA - core
- io
pckB - core
- io
- main
现在我必须为这两个包创建一个setup.py文件。我目前的做法是:
from distutils.core import setup
import setuptools
setup(
name='ProjectExternals',
version='0.1dev',
packages=["pckA","pckA.core","pckA.io","pckB","pckB.core","pckB.io","pckB.main"],
license='Not decided yet',
author='',
author_email='',
long_description="",
install_requires=["numpy","quantities"]
)
这个setup.py与pckA和pckB位于同一个文件夹中。所以我的问题是:是否需要添加所有子包,如pckA.core等,或者setuptools是否知道安装这些?
答案 0 :(得分:3)
不,如果您只想要整个包,指定其名称(即pckA
)就足够了 - 不需要列出其中的所有模块。 distutils
会以递归方式发现它们。
所以在你的情况下:
packages=['pckA', 'pckB'],
诀窍。以下是the docs的引用:
packages选项告诉你 Distutils to process(build,build, 所有纯粹的分发,安装等 每个包中都有Python模块 在包列表中提到。在 为了做到这一点,当然,有 成为包之间的对应关系 中的名称和目录 文件系统。
如果您不想要整个软件包但只想包含特定模块,请改用py_modules
选项。