On 07/03/2011 22:48, Mark Hammond wrote:
On 8/03/2011 7:33 AM, Michael Foord wrote:
A python launcher as you describe is a *great* idea.
A few concerns:
* we're missing an opportunity to do something easy (Martin is happy to
modify the installer and says it is easy) for something that may or may
not happen
Don't let my -0 stop anyone :)
Will you be at PyCon this year?
* will you call it python.exe? will it be installed by the python
installer?
- I doubt calling it python.exe will fly, but I'm not sure. If so what
will you call what is currently 'python.exe'? - if not then "python
foo.py" on the command line will *still* not work...
Calling it python.exe would make the most sense for people who don't
look behind the curtain, but I agree it could potentially be confusing
for people. Further, we would need to ensure we didn't create an
infinite loop where the launcher python.exe found a python.exe it
thought was an appropriate sub-process, but where it turns out it is
actually another launcher.
Sounds like fun. :-)
Having it installed by the Python installer also makes sense to me but
I'd be very interested in Martin's take on this (and also on
everything else we are discussing here).
Ditto.
* we're (yet again) making instructions for running stuff on Windows
*different* to other platforms (and making tutorials written for other
pythons "not work" in certain ways)
Actually, I'd argue we are making them more similar as we would be
honoring a shebang line and allowing the exact same mechanism be used
to denote the major version of Python needed.
Well, except (as pointed out a few minutes ago) that *isn't* what unix
does ("python foo.py" does not honour the shebang). It gets us to
something that works reliably though so I still like the idea.
* as I work with multiple platforms it would be really nice if the same
invocations worked across all of them - whilst I say again that I really
like the idea of the launcher it doesn't conflict with the other
suggestions (creating multiple binaries) and as you (Mark) say it
wouldn't hurt...
So why not do both? We could create the extra binaries to bring Python
on Windows inline with the unix conventions for command line
invocations, and the new launcher can follow on as a nice addition.
Note that the discussions about the Python installer adding to the PATH
won't be *ended* by the creation of the installer. A typical install on
a Unix-like system adds various other utilities to the path that merely
adding the top-level of your Python install on Windows still doesn't
add. In particular distutils installed scripts go into a subdirectory of
your Python install.
The distutils scripts are a good point. To be honest, apart from the
"file association" issue, I can't see much advantage in doing both -
if all Python directories end up on your path such that "python3
foo.py" magically works, then the launcher script is adding complexity
without bringing much to the table. Further, I'm somewhat skeptical
that the file associations are used by that many people in the real
world - currently when you double-click on a script you get a temp
console created, and should a traceback be raised, you get to see it
for about 2ms before the console is destroyed. Some people may be
.pyw to avoid that, but then their script has to go to extraordinary
lengths to display such errors in a UI of some kind. I suspect most
people just find it more convenient to launch such scripts from a
console. Maybe a quick poll on python-list would be reasonable...
The launcher program could thrive without *having* to be part of a
standard Python install. Offering it separately makes sense even if it
*is* included. If we do both then users can vote with their feet.
Personally I suspect that many people, particularly new programmers,
will appreciate the launcher but more advanced developers will want more
precise control (and similarity to unix for command line invocations).
I agree with you about file associations. They are useful for .pyw
programs (like IDLE), but not for scripts.
All the best,
Michael
Cheers,
Mark
--
http://www.voidspace.org.uk/
May you do good and not evil
May you find forgiveness for yourself and forgive others
May you share freely, never taking more than you give.
-- the sqlite blessing http://www.sqlite.org/different.html
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com