New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IDLE: don't offer to save text files as .py #72551
Comments
whenever I go to run a program no matter what I do it always says syntax error and highlights the 5 in the 3.5.2 version banner |
Hi A.J., What you're describing isn't really possible, so you're going to need to provide some more detail. Please copy and paste your Command Prompt session into a message here to show us what's going on. |
This sometimes happens when someone copies from a book or a tutorial and |
See bpo-28366 |
I can recreate this (based on the screenshots from bpo-28366). To reproduce, open IDLE. You get the console banner and prompt. Save that file using File-Save. The close IDLE. Reopen it, do File-Open to open your saved console session, then use the "Run" menu to run it. (You need to close IDLE, so it "forgets" the .py file came from a console session.) That's incorrect usage, of course (not "of course" to the OP - that's the real point here) as the text of a console session isn't a valid Python file, and doesn't syntax check. The error is saying precisely that - what is in the file isn't valid Python. So in one sense, this is simply user error. But I wonder, is there something about how IDLE presents things that could be improved? Either in the documentation or in the UI? I'm not exactly sure what the point of "file-save" in a console window is, and certainly it would be better to save the transcript as text so it couldn't be inadvertently be read back in as a Python module. I'm not an IDLE user, though, so I don't really have the background to know the best solution. |
I'm retitling the issue. The new title doesn't necessary represent the "bug" that needs to be fixed, but it does seem to represent the *apparent* error. |
There is no other way to explain it without fail every time no matter what code I write there is always syntax error highlighted on the five in the version banner. |
I am closing this as a duplicate of existing bpo-21140, to make .txt instead of .py the extension for files known not to be code files. I There is an existing simple patch. I will modify it to not even offer .py as a secondary choice. The reason Paul had to close IDLE to open the file in an(other) editor window is that Python allows only one editor window per file, and Shell is a subclass of OutputWindow, which is a subclass of EditorWindow. (The latter inheritance is backwards; OutputWindow should be the base TextEditor and 'CodeEditor' a subclass thereof.) When Shell is saved, the file name appears on the recent files list, and attempts to open it make the exiting editor the active window. Angie, as Paul explained, your screenshot shows a text file, mislabeled as a .py python file, in the editor. When you run non-code text as code, you get a SyntaxError. The text file appears to be a saved interactive shell session. "Python 3" by itself is a SyntaxError and will continue to be an error no matter what follows. It is possible that your Python installation, or the IDLE part of it, is badly broken, and needs to be repaired or re-installed. But I think it much much more likely that you have made a mistake. If you want to discuss this further, please post to python-list (or its news.gmane.org mirror). Include a link to this issue, give a detailed description of what you did (keystrokes and mouse clicks), and ask any questions. |
PS. A.J., you will likely be a happier user if you make a subdirectory under c:/Users/angie and put your files there instead of in the installation directory under the hidden AppDate |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: