Making code run in both source tree and installation path

Lawrence D'Oliveiro ldo at geek-central.gen.new_zealand
Mon Jun 29 23:55:01 EDT 2009

In message <mailman.2310.1246292443.8015.python-list at>, Javier 
Collado wrote:

> - distutils trick in to modify the installed script (i.e.
> changing a global variable value) so that it has a reference to the
> data files location.

This seems to me to be the cleanest solution, at least as a default.

> - Heuristic in the package code to detect when it's being executed
> from the source tree and when it has been the installed

By definition, a "heuristic" can never be fully reliable.

> - Just using an environment variable that the user must set according
> to his needs

This can be useful as a way to override default settings. But requiring it 
means extra trouble for the user.

For configurable settings, best to observe a hierarchy like the following 
(from highest to lowest priority):

* command-line options
* environment-variable settings
* user prefs in ~/.whatever
* system configs in /etc
* common data in /usr/share
* hard-coded

More information about the Python-list mailing list