https://github.com/python/cpython/commit/68299305c7898eb8eb0cea6cad19c299d0d1ba2d commit: 68299305c7898eb8eb0cea6cad19c299d0d1ba2d branch: 3.6 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: GitHub <noreply at github.com> date: 2018年10月13日T17:28:04-07:00 summary: bpo-33656: Move pyshell ctypes import inside try block. (GH-9858) A Windows build with _tkinter, tkinter, and idlelib but without ctypes is unlikely but apparently possible. (cherry picked from commit d274afb5e579a5d9d990f68f9af856cf4c918779) Co-authored-by: Terry Jan Reedy <tjreedy at udel.edu> files: M Lib/idlelib/pyshell.py diff --git a/Lib/idlelib/pyshell.py b/Lib/idlelib/pyshell.py index 5458c59dbd7e..47eef4399ce6 100755 --- a/Lib/idlelib/pyshell.py +++ b/Lib/idlelib/pyshell.py @@ -12,11 +12,11 @@ # Valid arguments for the ...Awareness call below are defined in the following. # https://msdn.microsoft.com/en-us/library/windows/desktop/dn280512(v=vs.85).aspx if sys.platform == 'win32': - import ctypes - PROCESS_SYSTEM_DPI_AWARE = 1 try: + import ctypes + PROCESS_SYSTEM_DPI_AWARE = 1 ctypes.OleDLL('shcore').SetProcessDpiAwareness(PROCESS_SYSTEM_DPI_AWARE) - except (AttributeError, OSError): + except (ImportError, AttributeError, OSError): pass import tkinter.messagebox as tkMessageBox