<div dir="ltr"><div class="gmail_extra">On 17 July 2013 14:13, Thomas Heller <span dir="ltr"><<a href="mailto:theller@ctypes.org" target="_blank">theller@ctypes.org</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div id=":12d" style="overflow:hidden">Am 15.07.2013 19:26, schrieb Donald Stufft:<div class="im"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Maybe this is a crazy idea, but would a windows only extension work?<br>
.pye(executable) Then just associate .pye with the launcher. Python<br>
won't see .pye as importable so there's no shadow issues.<br>
</blockquote>
<br></div>
pip.bat?</div></blockquote></div><br>That's my cue to cry :-)</div><div class="gmail_extra"><br></div><div class="gmail_extra" style>If you missed my earlier comments about bat files, then no - bat files have a significant number of failings that make them unsuitable for this sort of thing. The simplest example I can give is that bat files don't nest. So if the "pip" command is implemented as a bat file, and you have a script to build your virtualenv that looks like this:</div>
<div class="gmail_extra" style><br></div><div class="gmail_extra" style>@echo off</div><div class="gmail_extra" style>virtualenv foo</div><div class="gmail_extra" style>foo\scripts\activate</div><div class="gmail_extra" style>
pip install wibble</div><div class="gmail_extra" style>echo Complete!</div><div class="gmail_extra" style><br></div><div class="gmail_extra" style>then the final message would never be executed as the pip bat file would not return to its caller. (Actually, the activate command is also a bat file, so pip would never be executed either, but you get my point). That's the worst sort of silent failure, and I have spent significant time in the past debugging scripts that fell foul of this behaviour.</div>
<div class="gmail_extra" style><br></div><div class="gmail_extra" style>To fix this you have to use "call pip install wibble". And once you admit the possibility that certain commands could be implemented as bat files you have to either check everything, or use "call" everywhere, even when not necessary (e.g. "call python") just to be safe.</div>
<div class="gmail_extra" style><br></div><div class="gmail_extra" style>If you don't think this problem is sufficient, I can offer more :-(</div><div class="gmail_extra" style><br></div><div class="gmail_extra" style>
I'm afraid exe files as wrappers are probably the only viable option. The basic reason is that the OS recognises exe files in all context, with no special configuration needed. This is not true of any other file type. So anything else will have corner cases that will give unexpected results.</div>
<div class="gmail_extra" style><br></div><div class="gmail_extra" style>Paul</div></div>