On 8 February 2017 at 13:44, Tadej Janež <tade...@nez.si> wrote:
> Nick,
>
> thanks for your thorough answer.
>
> On Mon, 2017-02-06 at 20:07 +0100, Nick Coghlan wrote:
>>
>> It's not specific to Fedora's Python 3 packaging as such, but it *is*
>> specific to:
>>
>> - using --system-site-packages
>> - having pip install in the system site packages
>
> Yes, understood.
>
>> However, the way Fedora handles the native venv support in Python 3
>> means that this case will *always* apply when creating Python 3
>> virtual environments that can see the virtual environments - the pip
>> that gets installed into the virtual environment comes from
>> python-pip, rather than being a bundled copy in the Python RPM.
>
> I'm still a bit puzzled by this part.
>
> If I understand stdlib's venv documentation correctly [1], when one
> creates a virtual environment, it will use ensurepip to bootstrap pip
> into the virtual environment.
>
> However, if pip is installed in system site packages, then ensurepip
> will skip the bootstrapping process, leaving the created virtual
> environment without its bundled copy of pip:
>
> $ python3 -m venv --system-site-packages myvenv3
> $ source myvenv3/bin/activate
> (myvenv3) $ python3 -m ensurepip
> Ignoring indexes: https://pypi.python.org/simple
> Requirement already satisfied (use --upgrade to upgrade): setuptools in
> /usr/lib/python3.5/site-packages
> Requirement already satisfied (use --upgrade to upgrade): pip in
> /usr/lib/python3.5/site-packages
> (myvenv3) [vagrant@tadej-zbook ~]$ ls myvenv3/bin
> activate  activate.csh  activate.fish  python  python3
>
> Do you think this is OK or should stdlib's venv module (or ensurepip)
> be changed to always create a bundled copy of pip in the virtual
> environment?

What's supposed to happen is that ensurepip installs a fresh copy into
the virtual environment.

It *doesn't* happen under Python 3 on Fedora when system site-packages
is visible, because if python3 is installed, then python3-pip will
*also* be installed, and you get the behaviour you're seeing.

So this should be filed as a bug against the Fedora python package for
doing the wrong thing by default.

However, it isn't clear that this qualifies as an upstream bug, as
ensurepip in general is *supposed* to be a no-op when pip is already
installed.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncogh...@gmail.com   |   Brisbane, Australia
_______________________________________________
python-devel mailing list -- python-devel@lists.fedoraproject.org
To unsubscribe send an email to python-devel-le...@lists.fedoraproject.org

Reply via email to