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

Thomas Heller theller at ctypes.org
Thu Jan 31 11:35:24 EST 2013


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
>
> https://bugs.launchpad.net/python-mode

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,
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'.


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 script.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 script.py'.

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

Thomas



More information about the Python-list mailing list