[Python-Dev] Draft PEP and reference implementation of a Python launcher for Windows

Mark Hammond mhammond at skippinet.com.au
Sun Mar 20 04:00:27 CET 2011


On 20/03/2011 5:49 AM, "Martin v. Löwis" wrote:
>> * Is this really PEP material, or will turning the PEP into a regular
>> spec be suitable?
>
> It's PEP material if it is contentious, which I believe it is.

Of course it is - this is python-dev <wink>.

> I, for example, will find issues with it if the implementation uses
> CreateProcess at some point - the launcher should IMO run Python
> directly, rather than creating a new process. This, in turn, will
> probably mean that you cannot actually implement the PEP in Python.

Out of curiosity, what is your objection to having the child process?  I 
guess it must be the system resources needed for the parent process 
while it waits for the child to terminate so the exit code can be 
reflected correctly "up stream"?

I would have 3 main problems with dynamically loading Python into the 
launcher process:

* It may be difficult or impossible to do for implementations other than 
CPython.

* There are subtle differences when Python is loaded by an executable in 
the "install" directory versus by an executable that is not. 
Specifically, I'm thinking about the differences in how the default 
sys.path is populated.

* The registry doesn't currently tell us exactly where pythonxx.dll can 
be located, but does tell is where python.exe is.  Thus things would get 
a little more complex as we go snooping for the location of the DLL.

Note that these are almost certainly surmountable, but I wonder if the 
benefits outweigh the costs.

>> * If it is a PEP, is it "Standards Track" or "Informational"?
>
> If you are proposing to change the CPython code base (which I think you
> should), it's standards track. If you are talking about a tool provided
> by you on PyPI, you actually don't need to discuss it with anybody.

Thanks - "Standards Track" it is then :)  FWIW, I have no interest in 
making this a stand-alone project or distribution.  If there is 
agreement that this shouldn't be part of Python itself (which may well 
be a reasonable decision to make), I'll let the idea die.

>
>> * Does the functionality described strike the right balance between
>> simplicity and usefulness?
>
> It leaves a number of issues still open, so it's hard to tell yet.
> For example, the 32-bit vs. 64-bit issue should be resolved (which I
> think comes down to having 4 binaries).

This is an interesting one and one which I don't have a firm opinion 
about - but the soft opinion I have is something along the lines of "the 
functionality should not be dictated by the bittedness of the launcher 
itself".  IOW, if we decide that a 64bit implementation of Python should 
be chosen over a 32bit implementation of the exact same version, this 
should be done by both the 32bit and 64bit launchers.

Of course, I welcome more thoughts on this and could be easily swayed.

> Plus, it should talk about
> installation of multiple copies of the same Python version, e.g.
> from ActivePython, EPD, etc.

Good point - this is something I haven't considered at all.  Any 
thoughts on this from anyone?

> Notice that the PEP doesn't talk about file associations yet (but it
> should).

Actually, it does say '...the "console" version of the launcher should 
be associated with .py files and the "windows" version associated with 
.pyw files.'

What extra level of detail do you feel is necessary?

> I'm fine with the strategy, but I feel that the devil's in the detail.

Indeed!  But general approval for the strategy is an encouraging first 
step :)

Thanks!

Mark


More information about the Python-Dev mailing list