[Distutils] Creating a binary only python distribution of a C extension module and including some additional python and c files in it

Akhi Singhania asinghania at solarflare.com
Tue Jan 3 17:26:27 CET 2012


I have a extension module in C which I want to distribute in binary 
format, ideally an rpm. Additionally, I want to include some python 
files (examples on how to use the extension module) and source for a 
library the module dynamically links to (c,h, and make files).

How do I specify the example python file in setup.py so that it will be 
included in the rpm?

If I specify it as scripts, I get the following error:

$ python setup.py bdist --format=rpm

   running build_scripts
   creating build/scripts-2.6
   error: file 'foo.py' does not exist
   error: Bad exit status from /var/tmp/rpm-tmp.yjws9x (%build)
If I specify it as data_files, I get the following error:

$ python setup.py bdist --format=rpm

   error: Installed (but unpackaged) file(s) found:
If I specify it as py_modules, I do not get errors but it is not 
included in the resulting rpm.

Specifying it as a script works if I use

$ python setup.py bdist --format=gztar
Additionally, can I control the hierarchy of how the files are laid out 
in the rpm?

Currently, I am specifying the c,h,make files as data_files and they get 
placed in /usr, which is not desirable.

Alternatively, do you know of a way to specify the directory hierarchy 
if using --format=gztar
Currently, it creates a hierarchy resembling root install into /usr.
If I can modify this hierarchy, I would have essentially what I want.


More information about the Distutils-SIG mailing list