This question assumes that the python package I want to install is a django app that includes templates and media files. But the question is valid for any python package that does not only contain .py files.
I'm using buildout to create a re-buildable environment in which I'm developing a django project. My buildout.cfg looks like that:
[buildout]
parts = python
eggs =
normal-python-package
python-package-with-data-files
find-files =
http://domain-to-python-package-with-data-files
[python]
recipe = zc.recipe.egg
interpreter = python
eggs = ${buildout:eggs}
(and some django related stuff). The python-package-with-data-files is available through a link on the page http://domain-to-python-package-with-data-files.
The eggs normal-python-package and python-package-with-data-files are installed successfully in the eggs/ directory. Because python-package-with-data-files has set zip_safe to False in its setup.py file it is available unzipped in eggs/.
Only the non .py files of python-package-with-data-files are not available in the unzipped egg in eggs/ (they are included in the .tar.gz package available at http://domain-to-python-package-with-data-files).
How do I get these data files to be included in the egg? Do I need to change the setup.py file of the package? Or is it buildout related?
The things I found out are the following:
If I make a python setup.py sdist in python-package-with-data-files root directory, all data files are included in the created .tar.gz file. But if I make a python setup.py bdist it results in a build without including the data files.
This makes me think that the problem is not buildout specific. But maybe there is a way to tell buildout not to make a bdist but a sdist to create the egg and install the package into the project.
What shall I do? I am the maintainer of python-package-with-data-files, so I can change setup.py if necessary.