summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
authorMariatta Wijaya <mariatta.wijaya@gmail.com>2017-02-02 04:21:22 (GMT)
committerMariatta Wijaya <mariatta.wijaya@gmail.com>2017-02-02 04:21:22 (GMT)
commite2d8bc52c43483311bf48e52884bfd4c7689caf2 (patch)
treeb1c5662a5832dd8b38b1e1875ac0865157b14948 /Doc
parentc6fe419d1b3e1476d804a40809c2c5b954581c0d (diff)
downloadcpython-e2d8bc52c43483311bf48e52884bfd4c7689caf2.zip
cpython-e2d8bc52c43483311bf48e52884bfd4c7689caf2.tar.gz
cpython-e2d8bc52c43483311bf48e52884bfd4c7689caf2.tar.bz2
Issue #29381: Clarify ordering of UNIX shebang line as source encoding line
Diffstat (limited to 'Doc')
-rw-r--r--Doc/tutorial/interpreter.rst29
1 files changed, 14 insertions, 15 deletions
diff --git a/Doc/tutorial/interpreter.rst b/Doc/tutorial/interpreter.rst
index faf57a3..bf7ce77 100644
--- a/Doc/tutorial/interpreter.rst
+++ b/Doc/tutorial/interpreter.rst
@@ -10,13 +10,13 @@ Using the Python Interpreter
Invoking the Interpreter
========================
-The Python interpreter is usually installed as :file:`/usr/local/bin/python3.6`
+The Python interpreter is usually installed as :file:`/usr/local/bin/python3.7`
on those machines where it is available; putting :file:`/usr/local/bin` in your
Unix shell's search path makes it possible to start it by typing the command:
.. code-block:: text
- python3.6
+ python3.7
to the shell. [#]_ Since the choice of the directory where the interpreter lives
is an installation option, other places are possible; check with your local
@@ -98,8 +98,8 @@ before printing the first prompt:
.. code-block:: shell-session
- $ python3.6
- Python 3.6 (default, Sep 16 2015, 09:25:04)
+ $ python3.7
+ Python 3.7 (default, Sep 16 2015, 09:25:04)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
@@ -138,25 +138,24 @@ should follow. To display all these characters properly, your editor must
recognize that the file is UTF-8, and it must use a font that supports all the
characters in the file.
-It is also possible to specify a different encoding for source files. In order
-to do this, put one more special comment line right after the ``#!`` line to
-define the source file encoding::
+To declare an encoding other than the default one, a special comment line
+should be added as the *first* line of the file. The syntax is as follows::
# -*- coding: encoding -*-
-With that declaration, everything in the source file will be treated as having
-the encoding *encoding* instead of UTF-8. The list of possible encodings can be
-found in the Python Library Reference, in the section on :mod:`codecs`.
+where *encoding* is one of the valid :mod:`codecs` supported by Python.
-For example, if your editor of choice does not support UTF-8 encoded files and
-insists on using some other encoding, say Windows-1252, you can write::
+For example, to declare that Windows-1252 encoding is to be used, the first
+line of your source code file should be::
# -*- coding: cp-1252 -*-
-and still use all characters in the Windows-1252 character set in the source
-files. The special encoding comment must be in the *first or second* line
-within the file.
+One exception to the *first line* rule is when the source code starts with a
+:ref:`UNIX "shebang" line <tut-scripts>`. In this case, the encoding
+declaration should be added as the second line of the file. For example::
+ #!/usr/bin/env python3
+ # -*- coding: cp-1252 -*-
.. rubric:: Footnotes