[Distutils] Installing large applications

Jim Fulton jim at zope.com
Wed Jun 16 09:45:17 EDT 2004

Tim Peters wrote:
> [Fred L. Drake, Jr.]
> ...


>>A new command-line option will be added to allow the location to be
>>changed.  "install --application <name>" will cause the installation to
>>occur in /opt/<name>/ (or some Windows equivalent)
> There seems to be an assumption that <name> includes a version number.  Then
> plain \<name> or <drive>:\<name> may be suitable on Windows.

I don't understand this.  How does the presence or absense of a version number affect
wither you use a root directory or a drive letter?


> The plural "directories" confuses this for me.  It reads as if a single run
> of "install.py --application" may actually specify multiple installation
> directories.  Or is it that the Windows installer will be modified to allow
> *an* (singular) alternate installation directory?

The point is that the windows installer for an application should allow the user
to select a directory to install into.  (IMO, the default, for an application,
should be in "Program Files".)

>>and provide the same behavior for applications by default.
> I'm not sure how much this proposal is intended to address.  An application
> like Zope expects some of its components (like ZODB) to show up on sys.path,
> without any runtime code of its own fiddling sys.path to make that happen.

No.  Generally an applucatin will have it's own library area(s), which will be
added to sys.path on startup.  So, the version of ZODB that comes with an
application would typically be installed in the application's library area
and would override any version installed in the standard library or site packages.

In addition, users will often want to install custom versions of libraries
for an application.

Zope actually takes this a step further by having "instance" installations.
To set up a zope installation, you first install the software (hopefulling using a
distutils-based installer) and then use an installed program to create one or more
Zope "instances". Each instance runs a Zope application server and has instance-specific
configuation, data, *and* library areas.  Someone could install custom versions
of software into an instance area, overriding other versions in the Zope or Python
library areas.

So, in summary, an application might add multiple librariy areas. The application *is*
responsible for adding these to sys,path on startup.


Jim Fulton           mailto:jim at zope.com       Python Powered!
CTO                  (540) 361-1714            http://www.python.org
Zope Corporation     http://www.zope.com       http://www.zope.org

More information about the Distutils-SIG mailing list