On 2008-03-04 02:55, [EMAIL PROTECTED] wrote: > Hello, > > I have some materials for a project that I am working on that I keep > in a source code control system (svn now, but I'm experimenting with > mercurial). I want to install these things from the repository, but > not into site-packages/ as Distutils wants to do. > > For instance there are some administrative scripts I want to put in ~/ > admin/ and some programs that I want in ~/public_html/ . I also > want to run some post-install routines (for instance, reset the > database tables on my development machine). So I'm looking for a tool > to take things from a repository and install them into place. > Something like: > install_from_repository.py -version "1.2.7" > if there is a bug in 1.2.7 that I need to work on. > > Some of the things that I am looking for are like what setup.py does > (for instance, changing the #! line on scripts or having a > convenient .cfg file). But as I understand it setup only targets > installing below sys.prefix; is that right?
The distutils "install" command provides a lot of what you're looking for, in particular, it makes it easy to install the various parts of a package in different directories: $ python2.5 setup.py install --help Common commands: (see '--help-commands' for more) setup.py build will build the package underneath 'build/' setup.py install will install the package Global options: --verbose (-v) run verbosely (default) --quiet (-q) run quietly (turns verbosity off) --dry-run (-n) don't actually do anything --help (-h) show detailed help message --set-version override the package version number Options for 'mx_install' command: --prefix installation prefix --exec-prefix (Unix only) prefix for platform-specific files --home (Unix only) home directory to install under --install-base base installation directory (instead of --prefix or -- home) --install-platbase base installation directory for platform-specific files (instead of --exec-prefix or --home) --root install everything relative to this alternate root directory --install-purelib installation directory for pure Python module distributions --install-platlib installation directory for non-pure module distributions --install-lib installation directory for all module distributions (overrides --install-purelib and --install-platlib) --install-headers installation directory for C/C++ headers --install-scripts installation directory for Python scripts --install-data installation directory for data files --compile (-c) compile .py to .pyc [default] --no-compile don't compile .py files --optimize (-O) also compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0] --force (-f) force installation (overwrite any existing files) --skip-build skip rebuilding everything (for testing/debugging) --record filename in which to record list of installed files usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: setup.py --help [cmd1 cmd2 ...] or: setup.py --help-commands or: setup.py cmd --help > I can write routines for myself but other people must need to do these > things also and a tested solution is obviously better. Is there such > a tool? Things that the stock distutils cannot do out of the box can easily be added by subclassing commands or adding new ones in your setup.py. For some examples how this can be done, have a look at e.g. the mxSetup.py module we ship with the eGenix mx Base Distribution: http://www.egenix.com/products/python/mxBase/ -- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Source (#1, Mar 04 2008) >>> Python/Zope Consulting and Support ... 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,MacOSX for free ! :::: eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 -- http://mail.python.org/mailman/listinfo/python-list