distutils setup.cfg question.

"Martin v. Löwis" martin at v.loewis.de
Fri Nov 19 01:19:26 EST 2004


Mike Meyer wrote:
> Ok, I give up. I searched the CVS code, and can't find the place that
> turns an include_dirs option in setup.cfg into a list of
> directories. The reason I was looking for it is that I can't figure
> out how to make include_dirs include multiple directories from
> setup.cfg. Everything I try winds up putting
> -I<contents_of_include_dirs>. I couldn't even find the place where the
> string value that is returned by ConfigParser is enclosed in a list.

I did it this way:

% cd work/py2.4/Lib/distutils/
% grep setup.cfg *
dist.py:        on Windows/Mac, and setup.cfg in the current directory.
dist.py:        # All platforms support local setup.cfg
dist.py:        local_file = "setup.cfg"

So it is clearly dist.py. There, setup.cfg is returned from
find_config_files. This is called a single time only in dist.py,
namely from parse_config_files. As you can see, this is then set
as the global include_dirs option. Apparently, include_dirs really
*is* a single string, then.

Now, where is it split into multiple substrings?
% grep include_dirs *.py */*.py

This gives a long list. However, in two places, include_dirs is split:
command/config.py:            self.include_dirs = 
string.split(self.include_dirs, os.pathsep)
command/build_ext.py:            self.include_dirs = 
string.split(self.include_dirs, os.pathsep)

Both places have similar code:

         if self.include_dirs is None:
             self.include_dirs = self.distribution.include_dirs or []
         elif type(self.include_dirs) is StringType:
             self.include_dirs = string.split(self.include_dirs, os.pathsep)

HTH,
Martin



More information about the Python-list mailing list