48
votes

On Ubuntu 16.04 with virtualenv 15.0.1 and Python 3.5.2 (both installed with apt) when I create and activate new Python virtual environment with

virtualenv .virtualenvs/wtf -p $(which python3) --no-site-packages
source .virtualenvs/wtf/bin/activate

I get the following output:

Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /home/das-g/.virtualenvs/wtf/bin/python3
Also creating executable in /home/das-g/.virtualenvs/wtf/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.

Indeed pip freeze --all lists these 4 packages:

pip==8.1.2
pkg-resources==0.0.0
setuptools==25.2.0
wheel==0.29.0

Though, I'd expect pip freeze (without --all) to omit these implicitly installed packages. It does omit some of them, but not pkg-resources:

pkg-resources==0.0.0

(Same btw. for pip freeze --local)

While this is consistent with the help text

$> pip freeze --help | grep '\--all'
  --all                       Do not skip these packages in the output: pip, setuptools, distribute, wheel

having pkg-resources in the pip freeze output doesn't seem very useful and might even be harmful. (I suspect it's why running pip-sync from pip-tools uninstalls pkg-resources from the virtual environment, subtly breaking the environment thereby.) Is there any good reason why pip freeze lists pkg-resources instead of omitting it, too? As far as I remember, it didn't list it on Ubuntu 14.04 (with Python 3.4).

2
I don't know why exactly this happens. This happened to me with a different package that was actually essential for my project. The solution I found was to edit the requirements.txt with the latest available version on PyPi. One possibility, I'm guessing, is the version that was initially installed is no longer available on PyPi.owobeid
It's amazing that there isn't an answer for this yet...Adam
I created a ticket, it may eventually provide an answer: github.com/pypa/pip/issues/4022Craig Wright
Debian bug report #871790 is also about this issue.das-g

2 Answers

35
votes

According to https://github.com/pypa/pip/issues/4022, this is a bug resulting from Ubuntu providing incorrect metadata to pip. So, no there does not seem to be a good reason for this behaviour. I filed a follow-up bug with Ubuntu. https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463

9
votes

I had the same problem in my virtual environment. I removed it with pip uninstall pkg-resources==0.0.0