Как включить package_data
для sdist
без файла MANIFEST.in?Как я могу включить package_data без файла MANIFEST.in?
Мой 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
).
Как включить package_data
для sdist
без файла MANIFEST.in?
Спасибо за подробный ответ. К сожалению, я просто выполнил эти инструкции дословно, а 'bar.txt' не появился в' foo-2015.3.tar.gz'. Вы упоминаете намеренно использование старой версии setuptools, но вы не скажете почему. Может ли это объяснить, почему он не работает? –