WindowsでのPython 3.5.2の魔法のバグは、私の一日を殺しました。下記のファイルは、このシステムに障害が発生した:コーデックヘッダー付きのASCII安全ファイルでのエンコードの問題(行数に応じて)
C:\Python35\python.exe encoding-problem-cp1252.py File "encoding-problem-cp1252.py", line 2 SyntaxError: encoding problem: cp1252
はほとんど何も入っていません - 離れてcoding
ヘッダから空行の束があるが、任意の行は、空であっても、それが削除されたとき再び働く。私はそれがローカルの問題だと思ったので、同じ動作を示した0をセットアップしました。
Pythonでは何が起こっていますか?
以下のファイルのbinary accurate versionがあります:
#!/usr/bin/env python
# -*- coding: cp1252 -*-
"""
There is nothing in this file, except that it is more
than 50 lines long. Running it with Python 3.5.2 on
Windows gives the following error:
>python encoding-problem-cp1252.py
File "encoding-problem-cp1252.py", line 2
SyntaxError: encoding problem: cp1252
>python
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:01:18) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
If you remove any lines from this file, it will
execute successfully.
"""
def restore(dump):
"""
"""
return
def main():
print('ok')
if __name__ == '__main__':
main()
Windowsでは実行されていませんが、これはデバッグは困難です。ファイルはMac OS XとLinux上で正常に動作します。あなたがバグを見つけたように思えます。http://bugs.python.org/でファイルを提出してください。 –
[関連ソースコード](https://hg.python.org/cpython/file/v3.5.2/Parser)を見てください。 /tokenizer.c#l510)CRLFの処理に疑問があります。ファイルをUnixの行末(現在のように)からWindowsの行末まで変換するとどうなりますか?ファイルが長すぎると、バッファリングに関する問題が発生する可能性があります。 –
誰かが私のためにこのバグを埋めることができますか?私はこのトラッカーから、数年前にリストにあまりにも感情的な反応があるのを禁止されています。 –