On OS X framework installs, the Mac-specific sub-makefiles do some important tailoring of IDLE/s config-extensions.def and config-main.def files, among other things changing Tk some Tk events for more appropriate keyboard bindings (e.g. "<Alt-" to "<Opt-". On Python 2, this tailoring is performed by Mac/IDLE/Makefile.in replacing the standard Lib/idlelib/config-extensions.def and Lib/idlelib/config-main.def files with pre-edited versions from Mac/IDLE (Mac/IDLE/config-extensions.def and Mac/IDLE/config-main.def). Unfortunately, over the years, the Mac-specific files have not been kept in sync with the standard ones. For Python 2.7.11, this results in the problem described in Issue25313 still being present for OS X framework installs, such as provided by the python.org OS X installers and other third-party distributors. (The symptoms are warning messages during IDLE startup of the form:
Warning: configHandler.py - IdleConf.GetOption -
problem retrieving configuration option 'name2'
from section 'Theme'.
returning default value: ''
)
For Python 3, the Mac Makefile installation of IDLE was substantially revised including eliminating the Mac-specific copies of the two .def files. Instead, the Python 3 Makefile edits the default idlelib .def files during installation so that this kind of sync problem doesn't occur. Ideally, the 2.7 Mac/IDLE/Makefile.in should be changed to do what Python 3 does and the redundant .def files removed. At a minimum the 2.7 Mac files should be synced. Patch to follow.
For 2.7.12 I've committed changes to the Mac/IDLE Makefile so that it now edits the defaults files in place on install just like the 3.x Makefiles do. Framework installs of IDLE 2.7 on OS X no longer output startup warnings and, since the defaults are now in sync, also now properly use the newer default font. The whole approach is less than ideal since the OS X tailoring is still hidden away in the Mac Makefiles rather than in idlelib code. Issue20580 addresses the broader issue of platform-specific configuration files for IDLE.