1. ホーム
  2. python

[解決済み] 「from __future__ imports must occur at the beginning of the file": ファイルの先頭を定義するものは何ですか?

2022-02-10 14:28:24

質問内容

Pythonスクリプト

'''
a
'''

from __future__ import print_function

はうまく動作する(つまり何もしない)のですが

'''
a
'''

'''
b
'''
from __future__ import print_function

の原因となる。

File "C:\test.py", line 8
    from __future__ import print_function
SyntaxError: from __future__ imports must occur at the beginning of the file

なぜ?


https://docs.python.org/2/reference/simple_stmts.html#future と書いてあります。

モジュールの先頭付近に未来の記述を表示する必要があります。唯一の の前に表示できる行は以下の通りです。

  • モジュールの docstring (もしあれば)。
  • コメント ,
  • 空白行 を、そして
  • その他の将来の記述。

2番目の例は、コメントと from __future__ import print_function にもかかわらず、うまくいきません。

Python 2.7を使用しています。

どのように解決するのですか?

<ブロッククオート

...これは、私が挙げた2番目の例と矛盾しているように思えます。

いいえ、それらはコメントではなく、文字列だからです。

最初の文字列はdocstringとしてコードからエライことになりますが、2番目の文字列は文字列そのものからなるコード内のステートメントになります。 __future__ インポート 必須 すべて コードに関連する行は、たとえそれが何の効果もないものであってもです。