2011-05-10 239 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