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

James C. Ahlstrom jim@interet.com
Tue, 04 Apr 2000 16:53:20 -0400


Guido van Rossum wrote:
> [Jim A]
> > Welcome to the club.
> 
> I'm not sure what you mean by this?

It sounded like you were joining the Microsoft afflicted...

> 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.

> 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.

Sorry, I have to run to a class.  To be continued tomorrow....

JimA