[Python-Dev] DLL in the system directory on Windows.

Guido van Rossum guido@python.org
Tue, 04 Apr 2000 16:58:08 -0400


> > [Jim A]
> > > Welcome to the club.

[me]
> > I'm not sure what you mean by this?
> 
> It sounded like you were joining the Microsoft afflicted...

Indeed :-(

> > In 1.5.2 I included a full Tcl/Tk installer (the unadorned installer
> > from Scriptics).  The feedback over the past year showed that this was
> > a bad idea: it stomped over existing Tcl/Tk installations, new Tcl/Tk
> > installations stomped over it, people chose to install Tcl/Tk on a
> > different volume than Python, etc.
> 
> My first thought was that this was the preferred solution.  It is up
> to Scriptics to provide an installer for Tk and for Tk customers
> to use it.  Any problems with installing Tk are Scriptics' problem.
> I don't know the reasons it stomped over other installs etc.  But
> either Tk customers are widely using non-standard installs, or
> the Scriptics installer is broken, or there is no such thing
> as a standard Tk install.  This is fundamentally a Scriptics
> problem, but I understand it is a Python problem too.
> 
> There may still be the problem that a standard Tk install might not
> be accessible to Python.  This needs to be worked out with Scriptics.
> An environment variable could be set, the registry used etc.  Assuming
> there is a standard Tk install and a way for external apps to use Tk,
> then we can still use the (fixed) Scriptics installer.

The Tk installer has had these problems for a long time.  I don't want
to have to argue with them, I think it would be a waste of time.

> > Assuming it is still evil to modify PATH, we would end up with Tcl/Tk
> > in the system directory, where it could once again interfere with (or
> > be interfered by) other Tcl/Tk installations!
> 
> I seems to me that the correct Tk install script would put Tk
> DLL's in the system dir, and use the registry to find the libraries
> and other needed files.  The exe's could go in a program directory
> somewhere.  This is what I have to come to expect from professional
> software for DLL's which are expected to be used from multiple
> apps, as opposed to DLL's which are peculiar to one app.  If
> the Tk installer did this, Tk would Just Work, and it would
> Just Work with third party apps (Tk clients) like Python too.

OK, you go argue with the Tcl folks.  They create a vaguely unix-like
structure under c:\Program Files\Tcl: subdirectories lib, bin,
include, and then they dump their .exe and their .dll files in the bin
directory.  They also try to munge PATH to include their bin
directory, but that often doesn't work (not on Windows 95/98 anyway).

--Guido van Rossum (home page: http://www.python.org/~guido/)