mirror of
https://github.com/python/cpython.git
synced 2025-08-03 08:34:29 +00:00
Require _tkinter -- don't attempt to import tkinter when _tkinter does
not exist. All 8 uses of tkinter are replaced with _tkinter. Still create a variable tkinter though, because that is used by other modules importing Tkinter (e.g. tkinter.createfilehandler()). Also added a comment to the 'import _tkinter' line saying that if this fails, Python is not configured correctly.
This commit is contained in:
parent
10efb05d51
commit
9580609ba3
2 changed files with 20 additions and 50 deletions
|
@ -2,30 +2,15 @@
|
|||
|
||||
__version__ = "$Revision$"
|
||||
|
||||
try:
|
||||
# See if modern _tkinter is present
|
||||
import _tkinter
|
||||
tkinter = _tkinter # b/w compat
|
||||
except ImportError:
|
||||
# No modern _tkinter -- try oldfashioned tkinter
|
||||
import tkinter
|
||||
if hasattr(tkinter, "__path__"):
|
||||
import sys, os
|
||||
# Append standard platform specific directory
|
||||
p = tkinter.__path__
|
||||
for dir in sys.path:
|
||||
if (dir not in p and
|
||||
os.path.basename(dir) == sys.platform):
|
||||
p.append(dir)
|
||||
del sys, os, p, dir
|
||||
from tkinter import tkinter
|
||||
TclError = tkinter.TclError
|
||||
import _tkinter # If this fails your Python is not configured for Tk
|
||||
tkinter = _tkinter # b/w compat for export
|
||||
TclError = _tkinter.TclError
|
||||
from types import *
|
||||
from Tkconstants import *
|
||||
import string; _string = string; del string
|
||||
|
||||
TkVersion = _string.atof(tkinter.TK_VERSION)
|
||||
TclVersion = _string.atof(tkinter.TCL_VERSION)
|
||||
TkVersion = _string.atof(_tkinter.TK_VERSION)
|
||||
TclVersion = _string.atof(_tkinter.TCL_VERSION)
|
||||
|
||||
######################################################################
|
||||
# Since the values of file event masks changed from Tk 4.0 to Tk 4.1,
|
||||
|
@ -667,7 +652,7 @@ class Tk(Misc, Wm):
|
|||
baseName = os.path.basename(sys.argv[0])
|
||||
baseName, ext = os.path.splitext(baseName)
|
||||
if ext not in ('.py', 'pyc'): baseName = baseName + ext
|
||||
self.tk = tkinter.create(screenName, baseName, className)
|
||||
self.tk = _tkinter.create(screenName, baseName, className)
|
||||
try:
|
||||
# Disable event scanning except for Command-Period
|
||||
import MacOS
|
||||
|
@ -679,15 +664,15 @@ class Tk(Misc, Wm):
|
|||
self.update()
|
||||
# Version sanity checks
|
||||
tk_version = self.tk.getvar('tk_version')
|
||||
if tk_version != tkinter.TK_VERSION:
|
||||
if tk_version != _tkinter.TK_VERSION:
|
||||
raise RuntimeError, \
|
||||
"tk.h version (%s) doesn't match libtk.a version (%s)" \
|
||||
% (tkinter.TK_VERSION, tk_version)
|
||||
% (_tkinter.TK_VERSION, tk_version)
|
||||
tcl_version = self.tk.getvar('tcl_version')
|
||||
if tcl_version != tkinter.TCL_VERSION:
|
||||
if tcl_version != _tkinter.TCL_VERSION:
|
||||
raise RuntimeError, \
|
||||
"tcl.h version (%s) doesn't match libtcl.a version (%s)" \
|
||||
% (tkinter.TCL_VERSION, tcl_version)
|
||||
% (_tkinter.TCL_VERSION, tcl_version)
|
||||
if TkVersion < 4.0:
|
||||
raise RuntimeError, \
|
||||
"Tk 4.0 or higher is required; found Tk %s" \
|
||||
|
|
|
@ -2,30 +2,15 @@
|
|||
|
||||
__version__ = "$Revision$"
|
||||
|
||||
try:
|
||||
# See if modern _tkinter is present
|
||||
import _tkinter
|
||||
tkinter = _tkinter # b/w compat
|
||||
except ImportError:
|
||||
# No modern _tkinter -- try oldfashioned tkinter
|
||||
import tkinter
|
||||
if hasattr(tkinter, "__path__"):
|
||||
import sys, os
|
||||
# Append standard platform specific directory
|
||||
p = tkinter.__path__
|
||||
for dir in sys.path:
|
||||
if (dir not in p and
|
||||
os.path.basename(dir) == sys.platform):
|
||||
p.append(dir)
|
||||
del sys, os, p, dir
|
||||
from tkinter import tkinter
|
||||
TclError = tkinter.TclError
|
||||
import _tkinter # If this fails your Python is not configured for Tk
|
||||
tkinter = _tkinter # b/w compat for export
|
||||
TclError = _tkinter.TclError
|
||||
from types import *
|
||||
from Tkconstants import *
|
||||
import string; _string = string; del string
|
||||
|
||||
TkVersion = _string.atof(tkinter.TK_VERSION)
|
||||
TclVersion = _string.atof(tkinter.TCL_VERSION)
|
||||
TkVersion = _string.atof(_tkinter.TK_VERSION)
|
||||
TclVersion = _string.atof(_tkinter.TCL_VERSION)
|
||||
|
||||
######################################################################
|
||||
# Since the values of file event masks changed from Tk 4.0 to Tk 4.1,
|
||||
|
@ -667,7 +652,7 @@ class Tk(Misc, Wm):
|
|||
baseName = os.path.basename(sys.argv[0])
|
||||
baseName, ext = os.path.splitext(baseName)
|
||||
if ext not in ('.py', 'pyc'): baseName = baseName + ext
|
||||
self.tk = tkinter.create(screenName, baseName, className)
|
||||
self.tk = _tkinter.create(screenName, baseName, className)
|
||||
try:
|
||||
# Disable event scanning except for Command-Period
|
||||
import MacOS
|
||||
|
@ -679,15 +664,15 @@ class Tk(Misc, Wm):
|
|||
self.update()
|
||||
# Version sanity checks
|
||||
tk_version = self.tk.getvar('tk_version')
|
||||
if tk_version != tkinter.TK_VERSION:
|
||||
if tk_version != _tkinter.TK_VERSION:
|
||||
raise RuntimeError, \
|
||||
"tk.h version (%s) doesn't match libtk.a version (%s)" \
|
||||
% (tkinter.TK_VERSION, tk_version)
|
||||
% (_tkinter.TK_VERSION, tk_version)
|
||||
tcl_version = self.tk.getvar('tcl_version')
|
||||
if tcl_version != tkinter.TCL_VERSION:
|
||||
if tcl_version != _tkinter.TCL_VERSION:
|
||||
raise RuntimeError, \
|
||||
"tcl.h version (%s) doesn't match libtcl.a version (%s)" \
|
||||
% (tkinter.TCL_VERSION, tcl_version)
|
||||
% (_tkinter.TCL_VERSION, tcl_version)
|
||||
if TkVersion < 4.0:
|
||||
raise RuntimeError, \
|
||||
"Tk 4.0 or higher is required; found Tk %s" \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue