所以我有一个类似如下的文件夹结构:
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 .So位于同一文件夹中。我的问题是:是否有必要添加所有的子包,如pckA.core等,或者setuptools是否知道如何安装这些子包?
发布于 2011-05-10 15:07:12
不,如果你只是想要整个包,指定它的名称(即pckA)就足够了--不需要列出其中的所有模块。distutils将递归地发现它们。
所以在你的例子中:
packages=['pckA', 'pckB'],真的很管用。下面是the docs的一句话
软件包选项告诉分发包进行处理(构建、分发、安装等)包列表中提到的每个包中的所有纯Python模块。当然,为了做到这一点,必须在文件系统中的包名和目录之间建立对应关系。
如果您不想要整个包,但更愿意只包含特定的模块,请使用py_modules选项。
https://stackoverflow.com/questions/5945914
复制相似问题