Message137789
On Windows, IDLE closes all open windows and exits completely, without any error message, when selecting the "Print window" menu command.
Starting IDLE from inside a console, one can see the error message:
Exception in Tkinter callback
Traceback (most recent call last):
File "D:\apps\python32\lib\tkinter\__init__.py", line 1399, in __call__
return self.func(*args)
File "D:\apps\python32\lib\idlelib\IOBinding.py", line 453, in print_window
command = idleConf.GetOption('main','General','print-command-win')
File "D:\apps\python32\lib\idlelib\configHandler.py", line 245, in GetOption
type=type, raw=raw)
File "D:\apps\python32\lib\idlelib\configHandler.py", line 54, in Get
return self.get(section, option, raw=raw)
File "D:\apps\python32\lib\configparser.py", line 789, in get
d)
File "D:\apps\python32\lib\configparser.py", line 391, in before_get
self._interpolate_some(parser, option, L, value, section, defaults, 1)
File "D:\apps\python32\lib\configparser.py", line 440, in _interpolate_some
"found: %r" % (rest,))
configparser.InterpolationSyntaxError: '%' must be followed by '%' or '(', found
: '%s'
It is trying to read this entry from the config-main.def file:
[General]
print-command-posix=lpr %s
print-command-win=start /min notepad /p %s
For a ConfigParser file, those %s should be %%s instead. Previous IDLE versions (2.7 and 3.1) read the same entry without problem; I suspect they were using a RawConfigParser or processing the entry in a different way.
As a workaround, replacing %s with %%s in config-main.def is enough, until the code gets fixed. |
|
Date |
User |
Action |
Args |
2011-06-07 06:16:07 | ggenellina | set | recipients:
+ ggenellina |
2011-06-07 06:16:07 | ggenellina | set | messageid: <1307427367.68.0.910605365077.issue12274@psf.upfronthosting.co.za> |
2011-06-07 06:16:07 | ggenellina | link | issue12274 messages |
2011-06-07 06:16:06 | ggenellina | create | |
|