[Python-Dev] PEP 427: wheel

Stephen J. Turnbull stephen at xemacs.org
Sat Feb 16 12:14:39 CET 2013

Nick Coghlan writes:

 > For compatibility with file encoding declarations, I believe this
 > needs to be relaxed to starting with '#!python' in the source file
 > encoding, rather than strictly b'#!python' (which will only be the
 > case for ASCII compatible encodings).

In any PEP-263-compatible encoding it will be b'#!python'.

Relaxing this is excessive generality for a new feature.  I'm not sure
what you mean by file encoding declarations if not PEP 263, which
requires approximate[1] ASCII compatibility.  PEP 3120 simply builds
on PEP 263 by making UTF-8, rather than ISO 8859/1, the default

 > My rationale is that installers are going to need to read the source
 > file encoding for the scripts anyway, otherwise they may write the
 > shebang line back out with the wrong encoding, potentially leading to
 > decoding errors when attempting to run the script.

Too bad if there's no PEP 263 declaration and the file is not in ASCII.
I.e., the intersection of Python 2 and Python 3 default encodings.

[1]  Ie, Shift JIS and Big 5, or any encoding in which a pure ASCII
string can be interpreted as a string in that encoding, are OK, but
UTF-16 is not.

More information about the Python-Dev mailing list