Python launcher (PEP 397) and emacs python-mode.el

Andreas Röhler andreas.roehler at
Thu Jan 31 19:40:19 CET 2013

Am 31.01.2013 17:35, schrieb Thomas Heller:
> Am 31.01.2013 12:05, schrieb Andreas Röhler:
>> Am 31.01.2013 10:03, schrieb Thomas Heller:
>>> Has someone managed to patch python-mode.el to use
>>> the PEP 397 python launcher when you hit C-c C-c?
>>> It seems that emacs should parse the shebang line in the edited
>>> python script and pass the corresponding arguments to py.exe.
>> Yes, that's the way python-mode.el acts by default.
>> AFAIU that launcher is implemented in Python3.3 and should not need any
>> patch at all.
>> Should it not work, please file a bug-report at
> Well, let me make these remarks:
> 1. I'm on Windows, using gnu-emacs 24.2.1, and python-mode.el 6.1.0.
> I do not understand how the shebang line is used by python-mode.el,

it uses py-shebang-regexp to determine
- if a shebang is given
- if, yes, which interpreter to run

> depending on what I write into it either 'python.exe' is started when
> I hit C-c C-c, or I get 'Spawning child process: invalid argument'.
> The latter occurs most often when the shebang string contains 'jython'.

please file a bug-report giving some example script which triggers the bug

> 2. I would like to use the PEP 397 python launcher to start the python
> version that is specified in the shebang line.
> The python launcher py.exe parses this line when I run 'py',
> and then starts the corresponding python interpreter version.
> The launcher parses the shebang line by its own rules (see pep397 for
> exact details).  One example is this:
> <script>
> #!/usr/bin/python3.1-32
> import sys; print(sys.version)
> </script>
> The python launcher starts 'c:\Python31\python.exe -3.1-32'.

unfortunatly don't have a windows at my disposal.

At linux it would run exactly the interpreter specified. Might be okay for windows as shown.

> I would like emacs to do the same; however this would require emacs
> to do the same shebang line parsing as the launcher does.

So we do - looks like python-mode.el precedes PEP 397  :)

Expecting the bug elsewhere.

> Thomas

More information about the Python-list mailing list