Требования к пишу, выводящие глобальные пакеты

У меня есть виртуальный env для моего проекта django, но когда я нажал pip freeze, я получаю то, что должно быть глобальным списком пакетов сайтов, включает слишком много пакетов, таких как пакеты ubuntu и так много неулокальных вещей. Это происходит независимо от того, активен ли virtualenv или нет. Список пакетов моих сайтов выглядит немного тонким, поэтому я задаюсь вопросом, работает ли он вообще.

(env)~/code/django/ssc/dev/env/lib/python2.7/site-packages> ls
django
Django-1.4-py2.7.egg-info
easy-install.pth
pip-1.0.2-py2.7.egg
setuptools-0.6c11-py2.7.egg
setuptools.pth

Какая у меня проблема?

Ответ 1

Если ваша виртуальная среда имеет доступ к директории system-packages системы (т.е. вы использовали virtualenv --system-site-packages), то это нормально для того, чтобы список был довольно длинным.

Сравните следующее:

$ virtualenv --system-site-packages v1 && source v1/bin/activate
$ (v1) pip freeze | wc -l  # 100

$ virtualenv v2 && source v2/bin/activate
$ (v2) pip freeze | wc -l  # 2

Можете ли вы попробовать воссоздать virtualenv?

В качестве альтернативы добавление файла no-global-site-packages.txt должно указывать, что pip игнорирует глобальные пакеты сайтов:

$ touch $VIRTUAL_ENV/lib/python${version}/no-global-site-packages.txt