This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2014年08月08日 01:27 by Kent.D..Lee, last changed 2022年04月11日 14:58 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| c4.py | Kent.D..Lee, 2014年08月08日 01:27 | |||
| issue22168.patch | ned.deily, 2014年08月24日 00:47 | review | ||
| Messages (5) | |||
|---|---|---|---|
| msg225049 - (view) | Author: Kent D. Lee (Kent.D..Lee) | Date: 2014年08月08日 01:27 | |
This is either a turtle graphics or tkinter problem. In Python 3.4 it appears that something in Turtle Graphics broke or at least changed. I get the following error when trying to run a program that works in Python 3.1 and 3.2. Kent's Mac> python3.4 c4.py Traceback (most recent call last): File "c4.py", line 283, in <module> main() File "c4.py", line 277, in main animApp = Connect4Application(root) File "c4.py", line 110, in __init__ self.buildWindow() File "c4.py", line 129, in buildWindow theTurtle = turtle.RawTurtle(canvas) File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/turtle.py", line 2534, in __init__ self.screen = TurtleScreen(canvas) File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/turtle.py", line 1000, in __init__ cv._rootwindow.call('wm', 'attributes', '.', '-topmost', '1') AttributeError: 'Canvas' object has no attribute '_rootwindow' Kent's Mac> The code is attached. The error occurs on line 129 when trying to create a RawTurtle and provide it with a Canvas. |
|||
| msg225053 - (view) | Author: Ned Deily (ned.deily) * (Python committer) | Date: 2014年08月08日 02:57 | |
It looks like the changes associated with Issue11571, released in 3.4.1, cause this problem when the program supplies its own Canvas object rather than relying on the turtle module to create a default one. |
|||
| msg225054 - (view) | Author: Ned Deily (ned.deily) * (Python committer) | Date: 2014年08月08日 03:02 | |
As a temporary workaround, you could edit turtle.py to revert that change, in other words, just search for and delete the whole "if sys.platform == 'darwin'" test: diff -r d85fcf23549e Lib/turtle.py --- a/Lib/turtle.py Tue Aug 05 14:02:11 2014 -0500 +++ b/Lib/turtle.py Thu Aug 07 19:58:25 2014 -0700 @@ -993,12 +993,6 @@ self._colormode = _CFG["colormode"] self._keys = [] self.clear() - if sys.platform == 'darwin': - # Force Turtle window to the front on OS X. This is needed because - # the Turtle window will show behind the Terminal window when you - # start the demo from the command line. - cv._rootwindow.call('wm', 'attributes', '.', '-topmost', '1') - cv._rootwindow.call('wm', 'attributes', '.', '-topmost', '0') def clear(self): """Delete all drawings and all turtles from the TurtleScreen. The file is at /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/turtle.py. |
|||
| msg225776 - (view) | Author: Ned Deily (ned.deily) * (Python committer) | Date: 2014年08月24日 00:47 | |
The attached patch should prevent the AttributeError exception when not using a default Canvas. I now think the overall approach introduced in Issue11571 is not the best. I plan to commit this fix for now but encourage more robust solutions in the long term. |
|||
| msg226863 - (view) | Author: Ned Deily (ned.deily) * (Python committer) | Date: 2014年09月14日 07:05 | |
The changesets below should prevent the problem in 3.4.2 and 3.5.0. Since there are no standard tests for turtle at the moment, there is no testcase for using a non-default Canvas but one should be added when turtle tests are (Issue21914 and Issue21916). New changset fac17d06e01d by Ned Deily in branch '3.4': Issue #22168: Prevent turtle AttributeError with non-default Canvas on OS X. https://hg.python.org/cpython/rev/fac17d06e01d New changeset 775453a7b85d by Ned Deily in branch 'default': Issue #22168: Prevent turtle AttributeError with non-default Canvas on OS X. https://hg.python.org/cpython/rev/775453a7b85d |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:58:06 | admin | set | github: 66364 |
| 2014年09月14日 07:05:33 | ned.deily | set | status: open -> closed resolution: fixed messages: + msg226863 stage: patch review -> resolved |
| 2014年08月24日 00:47:02 | ned.deily | set | files:
+ issue22168.patch keywords: + patch messages: + msg225776 stage: needs patch -> patch review |
| 2014年08月08日 03:02:42 | ned.deily | set | messages: + msg225054 |
| 2014年08月08日 02:57:02 | ned.deily | set | versions:
+ Python 3.5 nosy: + ned.deily messages: + msg225053 assignee: ned.deily stage: needs patch |
| 2014年08月08日 01:27:43 | Kent.D..Lee | create | |