1

所以我有一个类似这样的文件夹结构:

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 是否也知道安装这些子包?

4

1 回答 1

3

不,如果您只想要整个包,指定它的名称(即pckA)就足够了 - 无需列出其中的所有模块。distutils将递归地发现它们。

所以在你的情况下:

packages=['pckA', 'pckB'],

行得通。这是来自文档的引用:

packages 选项告诉 Distutils 处理(构建、分发、安装等)在包列表中提到的每个包中找到的所有纯 Python 模块。当然,为了做到这一点,包名和文件系统中的目录之间必须有对应关系。


如果您想要整个包,而只想包含特定模块,请改用该py_modules选项。

于 2011-05-10T07:07:11.517 回答