Sur Ubuntu 16.04 avec virtualenv 15.0.1 et Python 3.5.2 (tous deux installés avec apt
) lorsque je crée et active un nouvel environnement virtuel Python avec
virtualenv .virtualenvs/wtf -p $(which python3) --no-site-packages
source .virtualenvs/wtf/bin/activate
Je reçois la sortie suivante:
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.
En effet, pip freeze --all
répertorie ces 4 packages:
pip==8.1.2
pkg-resources==0.0.0
setuptools==25.2.0
wheel==0.29.0
Cependant, je m'attendrais à ce que pip freeze
(sans --all
) omette ces packages implicitement installés. Il en omet certains, mais pas pkg-resources
:
pkg-resources==0.0.0
(Même btw. Pour pip freeze --local
)
Bien que cela soit cohérent avec le texte d'aide
$> pip freeze --help | grep '\--all'
--all Do not skip these packages in the output: pip, setuptools, distribute, wheel
avoir pkg-resources
dans la sortie pip freeze
ne semble pas très utile et pourrait même être dangereux. (Je suppose que c'est pourquoi exécuter pip-sync
à partir de pip-tools désinstalle pkg-resources de l'environnement virtuel, rompant ainsi subtilement l'environnement.) Existe-t-il une bonne raison pour laquelle pip freeze
répertorie pkg-resources
au lieu de l'omettre également? Pour autant que je m'en souvienne, il ne l'a pas répertorié dans Ubuntu 14.04 (avec Python 3.4).
Selon https://github.com/pypa/pip/issues/4022 , il s'agit d'un bogue résultant du fait qu'Ubuntu a fourni des métadonnées incorrectes à pip. Donc, non, il ne semble pas y avoir de bonne raison pour ce comportement. J'ai déposé un bug de suivi avec Ubuntu. https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463
J'ai eu le même problème dans mon environnement virtuel. Je l'ai enlevé avec pip uninstall pkg-resources==0.0.0