summaryrefslogtreecommitdiff
path: root/Lib/tkinter/_fix.py
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2008-05-16 14:24:45 +0000
committerGeorg Brandl <georg@python.org>2008-05-16 14:24:45 +0000
commitbbc57d73a0f0d1476d9c23b920ecc1ef8212a554 (patch)
tree44b67b84bf3297c5feb4e58a286fd98a92af4c99 /Lib/tkinter/_fix.py
parentae6b9f3cb22df80118dfe470ac2130fe0aa716a1 (diff)
downloadcpython-git-bbc57d73a0f0d1476d9c23b920ecc1ef8212a554.tar.gz
Step 1 of Tkinter renaming: move lib-tk modules into a new "tkinter" package.
Diffstat (limited to 'Lib/tkinter/_fix.py')
-rw-r--r--Lib/tkinter/_fix.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/Lib/tkinter/_fix.py b/Lib/tkinter/_fix.py
new file mode 100644
index 0000000000..346d3c34cf
--- /dev/null
+++ b/Lib/tkinter/_fix.py
@@ -0,0 +1,41 @@
+import sys, os
+
+# Delay import _tkinter until we have set TCL_LIBRARY,
+# so that Tcl_FindExecutable has a chance to locate its
+# encoding directory.
+
+# Unfortunately, we cannot know the TCL_LIBRARY directory
+# if we don't know the tcl version, which we cannot find out
+# without import Tcl. Fortunately, Tcl will itself look in
+# <TCL_LIBRARY>\..\tcl<TCL_VERSION>, so anything close to
+# the real Tcl library will do.
+
+prefix = os.path.join(sys.prefix,"tcl")
+if not os.path.exists(prefix):
+ # devdir/../tcltk/lib
+ prefix = os.path.join(sys.prefix, os.path.pardir, "tcltk", "lib")
+ prefix = os.path.abspath(prefix)
+# if this does not exist, no further search is needed
+if os.path.exists(prefix):
+ if not os.environ.has_key("TCL_LIBRARY"):
+ for name in os.listdir(prefix):
+ if name.startswith("tcl"):
+ tcldir = os.path.join(prefix,name)
+ if os.path.isdir(tcldir):
+ os.environ["TCL_LIBRARY"] = tcldir
+ # Compute TK_LIBRARY, knowing that it has the same version
+ # as Tcl
+ import _tkinter
+ ver = str(_tkinter.TCL_VERSION)
+ if not os.environ.has_key("TK_LIBRARY"):
+ v = os.path.join(prefix, 'tk'+ver)
+ if os.path.exists(os.path.join(v, "tclIndex")):
+ os.environ['TK_LIBRARY'] = v
+ # We don't know the Tix version, so we must search the entire
+ # directory
+ if not os.environ.has_key("TIX_LIBRARY"):
+ for name in os.listdir(prefix):
+ if name.startswith("tix"):
+ tixdir = os.path.join(prefix,name)
+ if os.path.isdir(tixdir):
+ os.environ["TIX_LIBRARY"] = tixdir