2011-05-10 161 views
1

所以我有一个文件夹结构是这样的:蟒蛇setup.py问题

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

这个问题的标题是非常通用的,你可以重新翻译它来帮助发现吗? – 2012-10-13 13:40:18

回答

3

不,如果你只是想全包,指定其名称(即pckA)是不够的 - 没有必要列出它的所有模块。 distutils将递归发现它们。

所以你的情况:

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

的伎俩。下面是从the docs报价:

的封装选项告诉Distutils的 要处理(建设, 分发,安装,等等),在包清单中提及的每个包 发现的所有纯 Python模块。在 为了做到这一点,当然,也有 是包 名和目录的文件系统 之间的对应关系。


如果希望全包,但宁愿只包括特定模块,使用py_modules选项,而不是。

+0

感谢您的快速输入。 – Bogdan 2011-05-10 08:21:12

+0

请注意,包中的子模块包含在内,但不包含子包。 – 2012-10-13 13:41:12