Re: [Distutils] setuptools and data files

At 09:43 PM 9/30/2006 +0200, Walter Dörwald wrote:
Hello Philip!
I'm having trouble with using setuptools with data files. The layout of my directory is this:
./src ./src/CVS ./src/CVS/Root ./src/CVS/Repository ./src/CVS/Entries ./src/coverage.css ./src/pycoco.py ./CVS ./CVS/Root ./CVS/Repository ./CVS/Entries ./setup.cfg ./installer.bmp ./MANIFEST.in ./setup.py
MANIFEST.in contains the line: include src/coverage.css
Setuptools only includes data files that are inside a *package* (which is why it's called "package_data"), or inside the .egg-info directory (metadata files), as that's the only way to ensure the files are accessible in all possible installation configurations (egg zips, egg dirs, and "traditional" installs).
My arguments to setup() look like this:
args = dict( name="pycoco", version="0.1", description="Python code coverage", long_description="...", author=u"Walter Doerwald", author_email="walter@livinglogic.de", url="...", download_url="...", license="Python", classifiers="...", keywords="...", package_dir={"": "src"}, py_modules=["pycoco"], package_data={ "": ["*.css"], } )
For this configuration, I would suggest that you move the .css file to the package's .egg-info directory, and use this expression at runtime to retrieve the contents:
data = pkg_resources.get_distribution('pycoco').get_metadata('coverage.css')
However when I do an "easy_install -Z ." I get the following directory layout:
/var/home/coverage/pythonroot/pycoco-0.1-py2.5.egg/ /var/home/coverage/pythonroot/pycoco-0.1-py2.5.egg/pycoco.py /var/home/coverage/pythonroot/pycoco-0.1-py2.5.egg/pycoco.pyc /var/home/coverage/pythonroot/pycoco-0.1-py2.5.egg/EGG-INFO /var/home/coverage/pythonroot/pycoco-0.1-py2.5.egg/EGG-INFO/PKG-INFO /var/home/coverage/pythonroot/pycoco-0.1-py2.5.egg/EGG-INFO/SOURCES.txt /var/home/coverage/pythonroot/pycoco-0.1-py2.5.egg/EGG-INFO/dependency_links.txt /var/home/coverage/pythonroot/pycoco-0.1-py2.5.egg/EGG-INFO/top_level.txt /var/home/coverage/pythonroot/pycoco-0.1-py2.5.egg/EGG-INFO/not-zip-safe
with no coverage.css in sight. I'm using a ~/.pydistutils.cfg, which contains:
[install] install_lib = ~/pythonroot
I've also tried including the include_package_data=True argument, moved the CSS file out of the src directory, changes the include statement in MANIFEST.in to "include coverage.css" and various combination thereof always with the same result. I'm using setuptools 0.6c3.
Am I doing something stupid?
BTW, I've moved most of our Python packages to setuptools, and so far it really simplifies packages handling. The only remaining problem is setuptools+pyexe. So thanks for all your work on setuptools.
Servus, Walter
participants (1)
-
Phillip J. Eby