2010-11-09 112 views
4

我有這樣的結構:的Python:PIP安裝在根目錄子包

setup.py 
package 
    __init__.py 
    sub_package 
     ___init__.py 
    sub_package2 
     __init__.py 

如果我通過setup.py安裝包安裝,那麼它的工作原理所理解的(通過複製整個包到站點包目錄):

site_packages 
    package 
     sub_package 
     sub_package2 

但是,如果我運行PIP安裝包,然後PIP安裝每個子包作爲獨立的包:

site-packages 
    package 
    sub_package 
    sub_package2 

我該如何避免這種情況?我使用setuptools中的find_packages()來指定包。

+0

可以粘貼setup.py的內容是什麼? – 2012-02-11 03:36:15

回答

7

注意:這個答案是不再有效,它只會保留歷史的原因,正確的答案,現在是使用setuptools的,更多信息https://mail.python.org/pipermail/distutils-sig/2013-March/020126.html


所有我會建議放棄第一setuptools的:

alt text

並使用任一distutils(其爲standard mechanism to distribute Python packages)或distribute你也有distutils2,但我認爲還沒有準備好,對於新標準here是如何編寫setup.py的指南。

有關問題的find_packages()不要在的distutils存在,你將不得不增加你的包是這樣的:

setup(name='package', 
     version='0.0dev1', 
     description='blalal', 
     author='me', 
     packages=['package', 'package.sub_package', 'package.sub_package2']) 

如果你有很多的包和子包,你將有使一些創建包列表的代碼here是來自Django源代碼的一個例子。

我想使用的distutils可以幫助你解決問題,我希望這能幫助:)

+0

謝謝。如果沒有辦法繼續使用setuptools,我會嘗試distutils。 – 2010-11-09 16:15:47

相關問題