Creating installer with external extension modules

  • Thread starter mhearne808[insert-at-sign-here]gmail[insert-dot-he
  • Start date
M

mhearne808[insert-at-sign-here]gmail[insert-dot-he

I'm creating a piece of software which will be used by in-house
users. My code will all be written in pure Python; however, it
depends heavily on a number of third-party Python modules, many of
which have C/C++ dependencies (numpy, scipy, etc.) Installing these
packages on my machine involved a morning of several serial "./
configure;make;sudo make install" steps. I'd prefer to automate all
of this for my users, but I'm not clear how to do this - I'm in an
environment of mixed Mac (desktops) and Linux (servers) and I'll need
to install on both platforms, and would prefer not to run around to
each computer making sure the dependencies are met.

I've looked through the documentation for distutils and setuptools,
and it's not obvious to me that there are hooks in either one for
passing in configure and make calls.

The fallback, I suppose, presuming that the correct version of Python
is already installed, is to write a custom Python script that "knows"
about each dependency, and takes the appropriate action. I should be
able to depend on everyone having gcc and make installed, I think.

Does anyone have any suggestions on the best way to approach this?

Thanks,

Mike
 
?

=?ISO-8859-1?Q?=22Martin_v=2E_L=F6wis=22?=

Does anyone have any suggestions on the best way to approach this?

For the Mac, I recommend to provide precompiled binaries to your users,
rather than requiring them to download various source packages, to run
your build-it-all script afterwards.

To distribute a package on the Mac, you could study the Mac package
format - however, providing a tar file of all files needed should
work just as well.

For Linux, you could do the same thing, provided you can standardize
on a single distribution, and on packages that should have been
installed before (if you are using Debian, you'll find that many
of the packages you have as prerequisites are already available for
Debian with the standard release). Again, you can try to create
packages according to the package management format of your Linux
distribution (i.e. either RPM or .deb).

If you go for the "native binary packages", your users will enjoy
easy installation, and, for Linux, also convenient deinstallation
(for Mac, you can get easy deinstallation if you put everything in
a single root directory).

Regards,
Martin
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,770
Messages
2,569,584
Members
45,075
Latest member
MakersCBDBloodSupport

Latest Threads

Top