carl at oddbird
May 6, 2012, 3:07 PM
On 05/05/2012 04:40 AM, Antoine Pitrou wrote:
Re: PEP 405 (pyvenv) and system Python upgrades
[In reply to]
> On Fri, 04 May 2012 14:49:03 -0600
> Carl Meyer<carl [at] oddbird> 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.
Python-Dev mailing list
Python-Dev [at] python