Почему pip freeze сообщает о некоторых пакетах в новом virtualenv, созданном с -no-site-пакетами?

Когда я создаю новый virtualenv, pip freeze показывает, что у меня есть несколько пакетов, даже если я ничего не установил в среде. Я ожидал, что pip freeze вернет пустой вывод до тех пор, пока мой первый pip install в среду. wsgiref является частью стандартной библиотеки , не так ли, поэтому почему она вообще появляется?

 день @ гараж: ~ $ mkdir тестирование
 день @ гараж: ~ $ cd тестирование
 день @ гараж: ~ / тестирование $ virtualenv --no-site-packages.
 Новый исполняемый файл python в ./bin/python
 Установка дистрибутива ................................................ ..........
 .................................................. .............................
 .........................................сделанный.
 день @ гараж: ~ / тестирование $.  бен / активировать
 (тестирование) день @ гараж: ~ / тестирование $ pip замораживание
 распространять == 0.6.10
 wsgiref == 0.1.2

Дополнительная информация:

 (тестирование) день @ гараж: ~ / тестирование $ pip --версия
 pip 0.7.2 из /home/day/testing/lib/python2.7/site-packages/pip-0.7.2-py2.7.eg
 g (python 2.7)
 (тестирование) день @ гараж: ~ / тестирование $ деактивировать
 день @ гараж: ~ / тестирование $ virtualenv --версия
 1.4.9
 день @ гараж: ~ / тестирование $, который virtualenv
 / USR / бен / virtualenv
 день @ гараж: ~ / тестирование $ dpkg -S / usr / bin / virtualenv
 python-virtualenv: / usr / bin / virtualenv
 день @ гараж: ~ / тестирование $ cat / etc / lsb-release 
 DISTRIB_ID = Ubuntu
 DISTRIB_RELEASE = 11,04
 DISTRIB_CODENAME = искусный
 DISTRIB_DESCRIPTION = "Ubuntu 11.04"

2 Solutions collect form web for “Почему pip freeze сообщает о некоторых пакетах в новом virtualenv, созданном с -no-site-пакетами?”

Каждый раз, когда вы создаете virtualenv с –no-site-пакетами, он устанавливает setuptools или distribute . И причина, по которой wsgiref появляется, состоит в том, что стандартная библиотека python 2.5+ предоставляет информацию о wsgiref в wsgiref lib (а pip не знает, является ли это stdlib или сторонним пакетом).

Кажется, он решен на Python3.3 +: http://bugs.python.org/issue12218

Чтобы ответить на несколько другой вопрос: вы можете исключить wsgiref (и любые другие аналогично-проблемные .egg файлы, если вам так жаль, что они есть по какой-то причине), сделав pip freeze -l вместо pip freeze .

pip help freeze описывает эту опцию:

-l, –local Если в virtualenv не сообщать глобально установленные пакеты

  • сделать некоторые модули из глобальных пакетов сайтов доступными в virtualenv
  • Как я могу правильно установить несколько непакетных распределений / virtualenv / pip экосистем на Ubuntu?
  • Модули Python не найдены в virtualenv
  • Как использовать Python virtualenv
  • настройка среды в virtaulenv с использованием python3, застрявшего на setuptools, pip, wheel
  • Virtualenv ". venv / bin / активировать "vs" источник venv / bin / activate "
  • Использует ли virtualenvwrapper с Python3.3 означает, что я не могу (или не должен) использовать pyvenv?
  • Установка psycopg2 в virtualenv (Ubuntu 10.04, Python 2.5)
  • Python - лучший язык программирования в мире.