On Fri., Sep. 7, 2018, 16:32 Dan Ryan, <d...@danryan.co> wrote:

> I’m thinking (and correct me if I’m wrong here) that Brett’s message might
> be motivated more by a desire to standardize and centralize effort by
> first assessing what the issue is.
>

Yep. I try to take the decade view of things so solving stuff that will
take a while to trickle out to the community doesn't phase me. 😉

The way I see it, we have a few major issues in play and a bunch of options
>
> - Python 2 support (venv is python 3 only and we are supporting python 2
> over in pipenv for the next year and a half at least)
>
>         - Would mean additional logic and complexity and support for both 
> virtualenv
> and venv anywhere we need to use a virtualenv (whereas virtualenv just
> supports both to begin with)
>
>         - Added complexity, higher maintenance cost, some benefit to
> users but high probability of new bugs in our code at least
>
> - activate_this.py (which provides critical inline activation for us when
> people invoke "pipenv run" from the command line)
>
It might make sense to try and add an 'activate' command to venv, e.g.
'python -m venv --activate .venv' as a UX convenience.

- Inability of venv to accurately determine the real python prefix when
> invoked inside another virtual environment (
> *https://github.com/pypa/virtualenv/issues/1095*
> <https://github.com/pypa/virtualenv/issues/1095>,
> *https://bugs.python.org/issue30811* <https://bugs.python.org/issue30811>)
>
>         - pipenv is often called inside a virtualenv to create a new
> virtualenv
>

I assume that could be fixed somehow (and people installing pipenv in a
virtual environment to then create another environment using that newly
installed pipenv helps explain why people do that nesting 😄).

        - virtualenv is the primary container on CI/build systems like
> travis
>
> - Someone mentioned an issue with pip installation on one of the trackers
> I follow, but I’m not clear on the details there and I couldn’t find
> anything relevant quickly
>
> IMO it makes total sense to focus core development on venv, with a
> compatibility library (i.e. virtualenv?) to extend functionality through
> 2020.  I know there was some talk of reworking virtualenv but Donald has
> been focused on warehouse and I’m not sure when that will change.  Having
> dedicated maintainership of someone who could provide compatibility shims
> on top of venv with injection of activate_this.py and some functionality
> to handle the prefix issues would be a big help, but I’m not sure how
> many of the open PRs will actually accomplish that.
>
> Perhaps if venv had all of these things, we could just publish a backport
> for it and that would provide a transition path
>
I don't think that would work as venv, if I remember correctly, utilizes
changes made to the interpreter to have a better integration.

-Brett


Dan Ryan
>
> gh: @techalchemy // e: d...@danryan.co
>
> From: Tzu-ping Chung [mailto:uranu...@gmail.com <uranu...@gmail.com>]
>
> Sent: Friday, September 07, 2018 5:42 PM
>
> To: Brett Cannon
>
> Cc: Alex Becker; sorin.sbar...@gmail.com; distutils-sig@python.org
>
> Subject: [Distutils] Re: Adopting virtualenv package maintenance
>
> On 08/9/2018, at 02:23, Brett Cannon <br...@python.org> wrote:
>
> On Fri, 7 Sep 2018 at 11:18 Nathaniel Smith <n...@pobox.com> wrote:
>
> On Fri, Sep 7, 2018, 10:48 Brett Cannon <br...@python.org> wrote:
>
> On Thu, 6 Sep 2018 at 13:44 Alex Becker <alcubec...@gmail.com> wrote:
>
> Another +1 to the utility of a maintainer. I am also working on package
> management and have found that venv is not a full replacement for
> virtualenv--for example I don't believe the environment can be entered
> programatically, while virtualenv provides activate_this.py which can be
> exec'd. I'm sure there are many other limitations, so I don't think python
> can give up on virtualenv soon.
>
> But are those inherent limitations of venv or simply a lack of a provided
> API or library to have the equivalent abilities? I assume there's a
> difference between keeping virtualenv running versus developing a small
> library on top of venv to backfill some things.
>
> I guess venv being in the stdlib means that any limitations it has are
> going to keep limiting "python -m venv" for quite a while.
>
> Depends on the type of limitation. Alex mentioned an activate_this.py
> script that makes activation a generic thing. That doesn't strike me as
> something that requires changes in the stdlib and instead something on PyPI
> that provided the equivalent for venv (and potentially also being in the
> stdlib).
>
> Just want to mention that adding activate_this.py to venv has been
> proposed, and rejected.
>
> https://bugs.python.org/issue21496
>
> Also there is an interpolation problem when you want to create a venv out
> of a virtualenv.
>
> https://bugs.python.org/issue30811
>
> While I agree with Vinay that this isn’t really a venv problem, it does
> still require a solution
>
> in some way. If venv doesn’t change, virtualenv needs to.
>
> No matter what the future of virtualenv is (rewritten on top of venv or
> not), I think it is at
>
> least reasonable to say that virtualenv needs *some* work, and someone
> needs to work on
>
> it? Because virtualenv is still being used at a very high volume while we
> are exchanging words,
>
> and there are a lot of simple improvements people can benefit from right
> now.
>
>
>
>
> If we want to work around these limits on something other than the Python
> release cycle, then it means training users to not run "python -m venv",
> and instead run "python -m somethingelse".
>
>
>
> So long as that's necessary, the "somethingelse" might as well be
> "virtualenv", which is what everyone is already trained to do anyway...
>
> There have been plans at various points to rewrite virtualenv on top of
> venv, and as far as I know the limiting factor was time/energy, not that
> they hit some intrinsic limitation.
>
> As is everything in open source. ;) I'm just trying to understand if
> there's something that specifically needs to change in venv long-term or
> not.
>
> --
>
> Distutils-SIG mailing list -- distutils-sig@python.org
>
> To unsubscribe send an email to distutils-sig-le...@python.org
>
> https://mail.python.org/mm3/mailman3/lists/distutils-sig.python.org/
>
> Message archived at
> https://mail.python.org/mm3/archives/list/distutils-sig@python.org/message/MIF3VTCHQIKRNS2UJEGTSBTW2SMCWTT4/
>
>
--
Distutils-SIG mailing list -- distutils-sig@python.org
To unsubscribe send an email to distutils-sig-le...@python.org
https://mail.python.org/mm3/mailman3/lists/distutils-sig.python.org/
Message archived at 
https://mail.python.org/mm3/archives/list/distutils-sig@python.org/message/ZIRLQFNO6CRJMAYTC2EVFGEWYWIWZQKS/

Reply via email to