[Distutils] Installing (data-)files in package directories
M.-A. Lemburg
mal at lemburg.com
Wed Nov 19 15:37:13 EST 2003
Thomas Heller wrote:
> It seems installing data-files in package directories is a common
> requirement - at least for me.
>
> Readme files, data files needed by the packages - the bdist_wininst.exe
> file is such an example. It needs to be in the same directory as the
> distutils.command.bdist_wininst module.
>
> So here is a build_py subclass (contained in a setup script) which does
> this. Any comments?
Does this only copy the files into the build directory or
also install them ?
It's a bit too unflexible for my taste (I wouldn't want *all*
files to get copied into the package tree). Here's what
I use for install_data to achieve more or less the same
with more control:
class mx_install_data(install_data):
""" Rework the install_data command to something more useful.
"""
def finalize_options(self):
if self.install_dir is None:
installobj = self.distribution.get_command_obj('install')
self.install_dir = installobj.install_data
if _debug: print 'Installing data files to %s' % self.install_dir
install_data.finalize_options(self)
def run (self):
if not self.dry_run:
self.mkpath(self.install_dir)
data_files = self.get_inputs()
for entry in data_files:
if type(entry) == types.StringType:
if 1 or os.name != 'posix':
# Unix- to platform-convention conversion
entry = string.join(string.split(entry, '/'), os.sep)
filenames = glob.glob(entry)
for filename in filenames:
dst = os.path.join(self.install_dir, filename)
dstdir = os.path.split(dst)[0]
if not self.dry_run:
self.mkpath(dstdir)
outfile = self.copy_file(filename, dst)[0]
else:
outfile = dst
self.outfiles.append(outfile)
else:
raise ValueError, 'tuples in data_files not supported'
--
Marc-Andre Lemburg
eGenix.com
Professional Python Software directly from the Source (#1, Nov 19 2003)
>>> Python/Zope Products & Consulting ... http://www.egenix.com/
>>> mxODBC.Zope Database Adapter ... http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/
________________________________________________________________________
::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! ::::
More information about the Distutils-SIG
mailing list