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 2008年11月05日 10:56 by mseaborn, last changed 2022年04月11日 14:56 by admin. This issue is now closed.
| Messages (2) | |||
|---|---|---|---|
| msg75521 - (view) | Author: Mark Seaborn (mseaborn) | Date: 2008年11月05日 10:56 | |
compile() raises a SyntaxError if the source code it is given contains trailing spaces or a trailing carriage return character, but this does happen if the same source code is imported or executed. import subprocess data = "if True:\n pass\n " filename = "/tmp/test.py" fh = open(filename, "w") fh.write(data) fh.close() subprocess.check_call(["python", filename]) subprocess.check_call(["python", "-c", "import test"], cwd="/tmp") compile(data, filename, "exec") This gives: Traceback (most recent call last): File "whitespace.py", line 11, in <module> compile(data, filename, "exec") File "/tmp/test.py", line 3 SyntaxError: invalid syntax This also happens if the data is changed to: data = "if True:\n pass\r" |
|||
| msg75617 - (view) | Author: Terry J. Reedy (terry.reedy) * (Python committer) | Date: 2008年11月07日 21:47 | |
Both differences are covered in the 2.x docs:
"When compiling multi-line statements, two caveats apply: line endings
must be represented by a single newline character ('\n'), and the input
must be terminated by at least one newline character.
The \r difference is not really a difference because \r is replaced by
\n before import starts compiling. I suspect that EOF effectively gets
converted to \n also. The doc issue is that 'must be terminated...' is
not always true.
This caveat is missing in 3.0, even though the limitation is the same.
see #4118.
I thought this was discussed in a c.l.p thread.
|
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:56:40 | admin | set | github: 48512 |
| 2010年04月29日 17:44:36 | terry.reedy | set | status: pending -> closed |
| 2008年11月07日 21:47:56 | terry.reedy | set | status: open -> pending resolution: not a bug messages: + msg75617 nosy: + terry.reedy |
| 2008年11月05日 21:07:39 | brett.cannon | set | nosy: + brett.cannon |
| 2008年11月05日 10:56:28 | mseaborn | create | |