3 # Delay import _tkinter until we have set TCL_LIBRARY,
4 # so that Tcl_FindExecutable has a chance to locate its
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.
13 prefix
= os
.path
.join(sys
.prefix
,"tcl")
14 if not os
.path
.exists(prefix
):
16 prefix
= os
.path
.join(sys
.prefix
, os
.path
.pardir
, "tcltk", "lib")
17 prefix
= os
.path
.abspath(prefix
)
18 # if this does not exist, no further search is needed
19 if os
.path
.exists(prefix
):
20 if not os
.environ
.has_key("TCL_LIBRARY"):
21 for name
in os
.listdir(prefix
):
22 if name
.startswith("tcl"):
23 tcldir
= os
.path
.join(prefix
,name
)
24 if os
.path
.isdir(tcldir
):
25 os
.environ
["TCL_LIBRARY"] = tcldir
26 # Compute TK_LIBRARY, knowing that it has the same version
29 ver
= str(_tkinter
.TCL_VERSION
)
30 if not os
.environ
.has_key("TK_LIBRARY"):
31 v
= os
.path
.join(prefix
, 'tk'+ver
)
32 if os
.path
.exists(os
.path
.join(v
, "tclIndex")):
33 os
.environ
['TK_LIBRARY'] = v
34 # We don't know the Tix version, so we must search the entire
36 if not os
.environ
.has_key("TIX_LIBRARY"):
37 for name
in os
.listdir(prefix
):
38 if name
.startswith("tix"):
39 tixdir
= os
.path
.join(prefix
,name
)
40 if os
.path
.isdir(tixdir
):
41 os
.environ
["TIX_LIBRARY"] = tixdir