如何在沒有MANIFEST.in文件的情況下包含package_data
for sdist
?如何在不包含MANIFEST.in文件的情況下包含package_data?
我setup.py看起來是這樣的:
import setuptools
setuptools.setup(
name='foo',
version='2015.3',
license='commercial',
packages=setuptools.find_packages(),
package_data={'': ['foo/bar.txt']},
)
版本:
[email protected]> python
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
>>> import setuptools
>>> setuptools.version.__version__
'3.6'
我只是無法得到包括foo/bar.txt
。
或者是this blog post仍然如此? http://blog.codekills.net/2011/07/15/lies,-more-lies-and-python-packaging-documentation-on--package_data-/
不過,在過去的一個小時內,我知道這些陳述介於「危險的誤導」和「該死的謊言」之間。 這是因爲Python包的主要類型是源包,創建源包的規範方法是使用setup.py sdist
。但是,package_data中指定的數據不包含在源代碼發行版中 - 它們僅包含在二進制文件(setup.py bdist
)分發和安裝(setup.py install
)中。
如何在沒有MANIFEST.in文件的情況下包含package_data
的sdist
?
感謝詳細的解答。不幸的是,我只是按照這些指令逐字逐句,'bar.txt'未能出現在'foo-2015.3.tar.gz'中。你提到故意使用舊版本的setuptools,但你不明白爲什麼。這能解釋爲什麼它不起作用嗎? – 2015-08-05 03:31:45