2009-05-21 57 views
6

我工作,在setup.py使用namespace_packagesfind_packages()像這樣Python包:setuptools如何決定爲sdist/bdist保留哪些文件?

from setuptools import setup, find_packages 
setup(name="package", 
    version="1.3.3.7", 
    package=find_packages(), 
    namespace_packages=['package'], ...) 

這不是在源控制,因爲它是上游部件束。沒有MANIFEST。

當我運行python setup.py sdist我得到的大部分文件的package/目錄下的壓縮包,但不包含.py文件的任何目錄被排除在外。

什麼是setup.py包含和排除構建的分佈默認規則?我已經加入了MANIFEST.in

recursive-include package * 

固定我的問題,但我想了解的setuptools和distutils的默認情況下做的。

回答

4

您需要添加一個package_data指令。例如,如果您要包括文件與.txt或.rst擴展:

from setuptools import setup, find_packages 
setup(name="package", 
    version="1.3.3.7", 
    package=find_packages(), 
    include_package_data=True, 
    namespace_packages=['package'], 
    package_data = { 
     # If any package contains *.txt or *.rst files, include them: 
     '': ['*.txt', '*.rst']... 

) 
+1

好吧,我做了你傷心什麼。但是,當我通過``安裝git + git:// repo``來安裝它時,它不包含文件。假設tu是目錄佈局的幕簾級別嗎? – Pol 2012-11-30 14:11:01

相關問題