[Python-Dev] PEP 405 (pyvenv) and system Python upgrades

Carl Meyer carl at oddbird.net
Mon May 7 00:07:32 CEST 2012


On 05/05/2012 04:40 AM, Antoine Pitrou wrote:
> On Fri, 04 May 2012 14:49:03 -0600
> Carl Meyer<carl at oddbird.net>  wrote:
>> 3) Symlink the interpreter rather than copying. I include this here for
>> the sake of completeness, but it's already been rejected due to
>> significant problems on older Windows' and OS X.
>
> Perhaps symlinking could be used at least on symlinks-friendly OSes?
> I expect older Windows to disappear one day :-) So the only left
> outlier would be OS X.

It certainly could - at one point the reference implementation did 
exactly this. I understand though that even on newer Windows' there are 
administrator-privilege issues with symlinks, and I don't know that 
there's any prospect of the OS X stub executable going away, so I think 
if we did this we should assume that we're accepting a more-or-less 
permanent cross-platform difference in the default behavior of venvs. 
Maybe that's ok; it would mean that for Linux users there'd be no need 
to run any venv-upgrade script at all when Python is updated, which is 
certainly a plus.

At one point it was argued that we shouldn't symlink by default because 
users expect venvs to be isolated and not upgraded implicitly. I think 
this discussion reveals that that's a false argument, since the stdlib 
will be upgraded implicitly regardless, and that's just as likely to 
break something as an interpreter update (and more likely than upgrading 
them in sync). IOW, if you want real full isolation from a system 
Python, you build your own Python, you don't use pyvenv.

Carl



More information about the Python-Dev mailing list