[Distutils] extra files into the package dir

Berthold Höllmann bhoel@starship.python.net
Wed Oct 18 16:26:02 2000


>>>>> "Rene" == Rene Liebscher <R.Liebscher@gmx.de> writes:

    Rene> Pete Shinners wrote:
    >>  i have some extra files i'd like to have copied into the
    >> destination package directory when installing.
    >> 
    >> it seems that distutils only installs the .PY(C) files when
    >> installing a package directory. how can i tell distutils to
    >> copy my other files too?
    >> 
    >> does this involve 'extending' the install command? i could
    >> probably do that if there were docs or an example of something
    >> like that.
    >> 
    Rene> I had a similar problem with PyOpenGL. (It needs some data
    Rene> files for its examples.) May be my solution is what you
    Rene> need. (At least it could serve as an example.)

    Rene> Look at the following address:
    Rene> http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/PyOpenGL/?cvsroot=PyOpenGL

    Rene> "my_install_data.py" extends distutils' install_data
    Rene> command. "setup.py" uses then this alternative command. (The
    Rene> important parts are at the end of this file. One is the
    Rene> specification of this alternative install command =
    Rene> "cmdclass" parameter of the setup function. The other is the
    Rene> "data_files" parameter to the setup function.)

There is support for installing data files, but they get to data
directories. When writing setup.py for biggles, I had the problem,
that a config file had to go to the package directory. All I did was adding

class my_install_data (install_data):
    def finalize_options (self):
        self.set_undefined_options('install',
                                   ('install_lib', 'install_dir'),
                                   ('root', 'root'),
                                   ('force', 'force'),
                                  )

and 

    cmdclass = {'install_data': my_install_data},
    data_files = [('biggles', ["src/config.ini"])]

to the setup command line. This got everything to the right place.

Hope this helps.

Greetings

Berthold
-- 
bhoel@starship.python.net / http://starship.python.net/crew/bhoel/
        It is unlawful to use this email address for unsolicited ads
        (USC Title 47 Sec.227). I will assess a US$500 charge for
        reviewing and deleting each unsolicited ad.