Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #37985 > unrolled thread

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

Started byThomas Heller <theller@ctypes.org>
First post2013-01-31 10:03 +0100
Last post2013-01-31 19:40 +0100
Articles 8 — 3 participants

Back to article view | Back to comp.lang.python


Contents

  Python launcher (PEP 397) and emacs python-mode.el Thomas Heller <theller@ctypes.org> - 2013-01-31 10:03 +0100
    Re: Python launcher (PEP 397) and emacs python-mode.el Andreas Röhler <andreas.roehler@online.de> - 2013-01-31 12:05 +0100
      Re: Python launcher (PEP 397) and emacs python-mode.el Thomas Heller <theller@ctypes.org> - 2013-01-31 17:35 +0100
        Re: Python launcher (PEP 397) and emacs python-mode.el Vinay Sajip <vinay_sajip@yahoo.co.uk> - 2013-01-31 18:26 +0000
          Re: Python launcher (PEP 397) and emacs python-mode.el Thomas Heller <theller@ctypes.org> - 2013-01-31 21:53 +0100
            Re: Python launcher (PEP 397) and emacs python-mode.el Vinay Sajip <vinay_sajip@yahoo.co.uk> - 2013-01-31 23:59 +0000
            Re: Python launcher (PEP 397) and emacs python-mode.el Andreas Röhler <andreas.roehler@online.de> - 2013-02-01 08:13 +0100
        Re: Python launcher (PEP 397) and emacs python-mode.el Andreas Röhler <andreas.roehler@online.de> - 2013-01-31 19:40 +0100

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

FromThomas Heller <theller@ctypes.org>
Date2013-01-31 10:03 +0100
SubjectPython launcher (PEP 397) and emacs python-mode.el
Message-ID<amuqb5FueeU1@mid.individual.net>
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.

Thomas

[toc] | [next] | [standalone]


#37988

FromAndreas Röhler <andreas.roehler@online.de>
Date2013-01-31 12:05 +0100
Message-ID<mailman.1246.1359630370.2939.python-list@python.org>
In reply to#37985
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

Andreas

> Thomas



[toc] | [prev] | [next] | [standalone]


#37999

FromThomas Heller <theller@ctypes.org>
Date2013-01-31 17:35 +0100
Message-ID<amvkqcF71apU1@mid.individual.net>
In reply to#37988
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

[toc] | [prev] | [next] | [standalone]


#38006

FromVinay Sajip <vinay_sajip@yahoo.co.uk>
Date2013-01-31 18:26 +0000
Message-ID<mailman.1253.1359656827.2939.python-list@python.org>
In reply to#37999
Thomas Heller <theller <at> ctypes.org> writes:

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

That doesn't seem right, the launcher on my system launches using

c:\Python31\python.exe script.py

if I just run script.py, or if I invoke it as

py -3.1-32 script.py

it still launches using

c:\Python31\python.exe script.py

Regards,

Vinay Sajip

[toc] | [prev] | [next] | [standalone]


#38011

FromThomas Heller <theller@ctypes.org>
Date2013-01-31 21:53 +0100
Message-ID<an03u3Fal86U1@mid.individual.net>
In reply to#38006
Am 31.01.2013 19:26, schrieb Vinay Sajip:
> Thomas Heller <theller <at> ctypes.org> writes:
>
>> <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'.
>>
>
> That doesn't seem right, the launcher on my system launches using
>
> c:\Python31\python.exe script.py
>
> if I just run script.py, or if I invoke it as
>
> py -3.1-32 script.py
>
> it still launches using
>
> c:\Python31\python.exe script.py

Sorry for the confusion that I am causing.  Vinay, you are right of course.

What I meant to write is this:

when the shebang line in script.py contains this:
   #!/usr/bin/python3.1-32
then emacs SHOULD run
   py.exe -3.1-32 script.py
and the launcher runs
   c:\Python31\python.exe script.py


Thomas

[toc] | [prev] | [next] | [standalone]


#38017

FromVinay Sajip <vinay_sajip@yahoo.co.uk>
Date2013-01-31 23:59 +0000
Message-ID<mailman.1263.1359676786.2939.python-list@python.org>
In reply to#38011
Thomas Heller <theller <at> ctypes.org> writes:

> What I meant to write is this:
> 
> when the shebang line in script.py contains this:
>    #!/usr/bin/python3.1-32
> then emacs SHOULD run
>    py.exe -3.1-32 script.py
> and the launcher runs
>    c:\Python31\python.exe script.py

IMO it would be better for emacs to just run

py.exe script.py

and py.exe can read the shebang and do the right thing. This saves the emacs code
from having to duplicate the shebang line processing logic that py.exe uses
(which, as we know, is unusual. So for a cross-platform you can have a shebang
line of #!/usr/bin/python3.2, and on Windows it will still call the appropriate
Python 3.2 even if it's not in /usr/bin, as there's no /usr/bin :-))

Regards,

Vinay Sajip


[toc] | [prev] | [next] | [standalone]


#38031

FromAndreas Röhler <andreas.roehler@online.de>
Date2013-02-01 08:13 +0100
Message-ID<mailman.1273.1359702822.2939.python-list@python.org>
In reply to#38011
Am 01.02.2013 00:59, schrieb Vinay Sajip:
> Thomas Heller <theller <at> ctypes.org> writes:
>
>> What I meant to write is this:
>>
>> when the shebang line in script.py contains this:
>>     #!/usr/bin/python3.1-32
>> then emacs SHOULD run
>>     py.exe -3.1-32 script.py
>> and the launcher runs
>>     c:\Python31\python.exe script.py
>
> IMO it would be better for emacs to just run
>
> py.exe script.py
>
> and py.exe can read the shebang and do the right thing. This saves the emacs code
> from having to duplicate the shebang line processing logic that py.exe uses
> (which, as we know, is unusual. So for a cross-platform you can have a shebang
> line of #!/usr/bin/python3.2, and on Windows it will still call the appropriate
> Python 3.2 even if it's not in /usr/bin, as there's no /usr/bin :-))
>
> Regards,
>
> Vinay Sajip
>
>
>

https://bugs.launchpad.net/python-mode/+bug/1112207

[toc] | [prev] | [next] | [standalone]


#38007

FromAndreas Röhler <andreas.roehler@online.de>
Date2013-01-31 19:40 +0100
Message-ID<mailman.1254.1359657646.2939.python-list@python.org>
In reply to#37999
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
>>
>> 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,

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

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

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web