|
1 import sys, os |
|
2 |
|
3 # Delay import _tkinter until we have set TCL_LIBRARY, |
|
4 # so that Tcl_FindExecutable has a chance to locate its |
|
5 # encoding directory. |
|
6 |
|
7 # Unfortunately, we cannot know the TCL_LIBRARY directory |
|
8 # if we don't know the tcl version, which we cannot find out |
|
9 # without import Tcl. Fortunately, Tcl will itself look in |
|
10 # <TCL_LIBRARY>\..\tcl<TCL_VERSION>, so anything close to |
|
11 # the real Tcl library will do. |
|
12 |
|
13 prefix = os.path.join(sys.prefix,"tcl") |
|
14 # if this does not exist, no further search is needed |
|
15 if os.path.exists(prefix): |
|
16 if not os.environ.has_key("TCL_LIBRARY"): |
|
17 for name in os.listdir(prefix): |
|
18 if name.startswith("tcl"): |
|
19 tcldir = os.path.join(prefix,name) |
|
20 if os.path.isdir(tcldir): |
|
21 os.environ["TCL_LIBRARY"] = tcldir |
|
22 # Compute TK_LIBRARY, knowing that it has the same version |
|
23 # as Tcl |
|
24 import _tkinter |
|
25 ver = str(_tkinter.TCL_VERSION) |
|
26 if not os.environ.has_key("TK_LIBRARY"): |
|
27 v = os.path.join(prefix, 'tk'+ver) |
|
28 if os.path.exists(os.path.join(v, "tclIndex")): |
|
29 os.environ['TK_LIBRARY'] = v |
|
30 # We don't know the Tix version, so we must search the entire |
|
31 # directory |
|
32 if not os.environ.has_key("TIX_LIBRARY"): |
|
33 for name in os.listdir(prefix): |
|
34 if name.startswith("tix"): |
|
35 tixdir = os.path.join(prefix,name) |
|
36 if os.path.isdir(tixdir): |
|
37 os.environ["TIX_LIBRARY"] = tixdir |