setuptools: getting data files to be installed

Paul Paterson ppaterson at gmail.com
Fri Sep 16 19:48:08 EDT 2011


I'm having a problem using setuptools to create a distribution for a project that includes data files. I can get the data files to be included in the zipped package file (*.tar.gz) but when I easy_install the package the data files are not installed. (Ubuntu 11.04, Python2.7).

I'm trying to use easy_install because the project is a game with dependencies and so it would be nice for easy_install to handle all that for people.


My setup.py file is below at the end of the post. 

I create the zip with,

> python setup.py egg_info
...
> python setup.py sdist

Then the dist/tacman-0.1.tar.gz includes my data files as identified in the MANIFEST.in file.

But when I do,

> sudo easy_install dist/tacman-0.1.tar.gz

... the python modules appear in /usr/local/lib/python27/dist-packages/tacman-0.1-py2.7.egg but the data files are nowhere to be seen. I tried locating them using pkg_resources but that didn't help. Some Googling suggested /usr/share as a location but they weren't there either.

Am I looking in the right place or did they just not get installed?

The whole distribution file is at http://perpetualpyramid.com/tacman-0.1.tar.gz in case that helps. The file is bit large because it is a game and the zip includes the music and graphics.

Thanks for any help and pointers.

Paul

--- setup.py ---

from setuptools import setup, find_packages

import game.common

setup(name='tacman',
      version=game.common.version,
      scripts=['tacman.py'], 
      entry_points = {
        'console_scripts' : [
            'tacman = tacman.tacman',
        ]
      },
      description='A tactical, turn-based clone on PACMAN',
      author='Paul Paterson',
      author_email='ppaterson at gmail.com',
      url='http://www.perpetualpyramid/tacman.html',
      download_url=('http://perpetualpyramid.com/tacman-%s.tar.gz' % game.common.version),

      include_package_data=True,
      zip_safe=False,
      
      packages=[
        'serge', 'serge.blocks', 'serge.tools', 'serge.tools.template', 'game',
      ],
      package_dir={'':'.'},

      classifiers = [
        "Programming Language :: Python",
        "Programming Language :: Python :: 2",
        "Development Status :: 4 - Beta",
        "Environment :: Other Environment",
        "Intended Audience :: End Users/Desktop",
        "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)",
        "Operating System :: OS Independent",
        "Topic :: Games/Entertainment",
        "Topic :: Games/Entertainment :: Puzzle Games",
        ],
       install_requires=[
         'pygame', 'networkx',
       ],
       long_description='''\
TACMAN
------

A turn-based, tactical version of PACMAN.

Play a PACMAN clone where the action is turn based. You move and then the 
ghosts move. The turn-based action adds additional tactical elements to the
game and allows you to plan ahead and outwit the ghosts!

Requires: Python 2.6+, pygame 1.9+, networkx

''',
         )



More information about the Python-list mailing list