[Python-checkins] CVS: python/dist/src/Lib/lib-tk FixTk.py,1.1,1.2

Guido van Rossum python-dev@python.org
Thu, 30 Mar 2000 22:11:43 -0500 (EST)


Update of /projects/cvsroot/python/dist/src/Lib/lib-tk
In directory eric:/projects/python/develop/guido/src/Lib/lib-tk

Modified Files:
	FixTk.py 
Log Message:
A version of FixTk.py that works with the way the installer now
installs Tcl/Tk.


Index: FixTk.py
===================================================================
RCS file: /projects/cvsroot/python/dist/src/Lib/lib-tk/FixTk.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** FixTk.py	1999/01/04 18:06:44	1.1
--- FixTk.py	2000/03/31 03:11:40	1.2
***************
*** 1,64 ****
! """Utility which tries to locate the Tcl/Tk 8.0 DLLs on Windows.
! 
! This is a no-op on other platforms.
! """
! 
! # Error messages we may spit out
! 
! NO_TCL_MESSAGE = """\
! WHOOPS!  I can't find a Tcl/Tk 8.0 installation anywhere.
! Please make sure that Tcl.Tk 8.0 is installed and that the PATH
! environment variable is set to include the Tcl/bin directory
! (or wherever TK80.DLL and TCL80.DLL are installed).
! If you don't know how to fix this, consider searching the Python FAQ
! for the error you get; post to the comp.lang.python if all else fails.
! Read the source file FixTk.py for details.
! """
! 
! NO_TKINTER_MESSAGE = """\
! WHOOPS!  Even though I think I have found a Tcl/Tk 8.0 installation,
! I can't seem to import the _tkinter extension module.
! I get the following exception:
!     ImportError: %s
! If you don't know how to fix this, consider searching the Python FAQ
! for the error you get; post to the comp.lang.python if all else fails.
! Read the source file FixTk.py for details.
! """
! 
! import sys
! if sys.platform == "win32":
!     try:
!         import _tkinter
!     except ImportError:
!         import os
!         try:
!             path = os.environ['PATH']
!         except KeyError:
!             path = ""
!         python_exe = sys.executable
!         python_dir = os.path.dirname(python_exe)
!         program_files = os.path.dirname(python_dir)
!         def tclcheck(dir):
!             for dll in "tcl80.dll", "tk80.dll", "tclpip80.dll":
!                 if not os.path.isfile(os.path.join(dir, dll)):
!                     return 0
!             return 1
!         for tcldir in [program_files, "\\Program files", "\\",
!                        "C:\\Program Files", "D:\\Program Files"]:
!             tcldir = os.path.join(tcldir, "Tcl", "bin")
!             if tclcheck(tcldir):
!                 break
!         else:
!             tcldir = None
!         if not tcldir:
!             sys.stderr.write(NO_TCL_MESSAGE)
!         else:
!             if path and path[-1] != os.pathsep:
!                 path = path + os.pathsep
!             path = path + tcldir
!             os.environ["PATH"] = path
!             os.putenv("PATH", path)
!             try:
!                 import _tkinter
!             except ImportError, message:
!                 sys.stderr.write(NO_TKINTER_MESSAGE % str(message))
--- 1,4 ----
! import sys, os
! v = os.path.join(sys.prefix, "tcl", "tcl8.3")
! if os.path.exists(os.path.join(v, "init.tcl")):
!     os.environ["TCL_LIBRARY"] = v