<div>On Mon, Oct 22, 2012 at 4:16 PM, Mark Lawrence <span dir="ltr"><<a href="mailto:breamoreboy@yahoo.co.uk" target="_blank">breamoreboy@yahoo.co.uk</a>></span> wrote:<br></div><div class="gmail_extra"><div class="gmail_quote">

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="im">On 22/10/2012 13:42, anatoly techtonik wrote:<br>


<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
On Mon, Oct 22, 2012 at 2:44 PM, Paul Moore <<a href="mailto:p.f.moore@gmail.com" target="_blank">p.f.moore@gmail.com</a>> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
On 22 October 2012 11:51, anatoly techtonik <<a href="mailto:techtonik@gmail.com" target="_blank">techtonik@gmail.com</a>> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
I wonder if it will make the life easier if Python was installed with<br>
.py association to "%PYTHON_HOME%\python.exe" "%1" %*<br>
It will remove the need to run .py scripts in virtualenv with explicit<br>
'python' prefix.<br>
</blockquote>
<br>
In Python 3.3 and later, the "py.exe" launcher is installed, and this<br>
is the association for ".py" files by default. It looks at the #! line<br>
of .py files, so you can run a specific Python interpreter by giving<br>
its full path. You can also specify (for example) "python3" or<br>
"python3.2" to run a specific Python version.<br>
</blockquote>
<br>
Yes, I've noticed that this nasty launcher gets in the way. So, do you<br>
propose to edit source files every time I need to test them with a new<br>
version of Python? My original user story:<br>
</blockquote>
<br></div>
I see nothing nasty in the launcher, rather it's extremely useful.  You don't have to edit your scripts.  Just use py -3.2, py -2 or whatever to run the script, the launcher will work out which version to run for you if you're not specific.</blockquote>

<div><br></div><div>Nice. Didn't know about that.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<div class="im"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
     I want to execute scripts in virtual environment (i.e. with Python<br>
installed for this virtual environment) without 'python' prefix.<br>
<br>
Here is another one. Currently Sphinx doesn't install with Python 3.2<br>
and with Python 3.3 [1]. Normally I'd create 3 environments to<br>
troubleshoot it and I can not modify all Sphinx files to point to the<br>
correct interpreter to just execute 'setup.py install'.<br>
</blockquote>
<br></div>
Please try running your scripts with the mechanism I've given above and report back what happens, hopefully success :)</blockquote><div><br></div><div>Not really. It doesn't work with virtualenv at all.</div><div>

<br></div><div><div>E:\p>cat version.py</div><div>import sys</div><div>print(sys.version)</div><div>E:\p>python version.py</div><div>3.3.0 (v3.3.0:bd8afb90ebf2, Sep 29 2012, 10:55:48) [MSC v.1600 32 bit (Intel)]</div>

<div><br></div><div>E:\p>32\Scripts\activate</div><div>(32) E:\p>python version.py</div><div>3.2.3 (default, Apr 11 2012, 07:15:24) [MSC v.1500 32 bit (Intel)]</div><div><br></div><div>(32) E:\p>version.py</div>
<div>
2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)]</div><div><br></div><div>(32) E:\p>py version.py</div><div>2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)]</div><div> <br></div></div>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="im">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
A solution would be to teach launcher to honor PYTHON_PATH variable if<br>
it is set (please don't confuse it with PYTHONPATH which purpose is<br>
still unclear on Windows).<br>
</blockquote>
<br></div>
What is PYTHON_PATH?  IIRC I was told years ago *NOT* to use PYTHONPATH on Windows so its purpose to me isn't unclear, it's completely baffling.<br></blockquote><div><br></div><div>Sorry, it was PYTHON_HOME - variable from <span style="font-family:arial,sans-serif;font-size:13px">.py association I proposed, i.e. "%PYTHON_HOME%\python.exe" "%1" %*</span></div>

<div><span style="font-family:arial,sans-serif;font-size:13px">If association is made in this way, then virtualenv could override </span>PYTHON_HOME and get `version.py` command execute with it's own interpreter.</div>

<div><br></div><div>Now with py.exe it looks a better idea to have PYTHONBIN environment variable and the association set to <span style="font-family:arial,sans-serif;font-size:13px">"%PYTHONBIN%" "%1" %*. This way virtualenv can easily override it during activation to make .py files executable with whatever Python (or PyPy) it has configured.</span></div>

</div></div>