Текущий рабочий процесс Python
У меня * Python pip , распространено , virtualenv и virtualenvwrapper установлено2.7 site-пакеты ( фреймворк Python, установленный в Mac OS X ).В моем ~/.bash_profile
есть строка
export PIP_DOWNLOAD_CACHE=$HOME/.pip_download_cache
. Этот рабочий процесс выглядит следующим образом:
$ mkvirtualenv pip-test
$ pip install nose # downloaded and installed from PyPi
$ pip install mock # downloaded and installed from PyPi
$ mkvirtualenv pip-test2
$ pip install nose # installed from pip's download cache
$ pip install mock # installed from pip's download cache
Вопросы
Поскольку я не загружаю пакеты, которые имеютранее был установлен в другом virtualenv, этот рабочий процесс экономит время и пропускную способность.Тем не менее, это не экономит дисковое пространство, так как каждый пакет будет установлен в каждом virtualenv.Поэтому мне интересно:
- Вопрос № 1 Существует ли модификация этого рабочего процесса, которая позволила бы мне сэкономить место на диске, если несколько virtualenvs ссылаются на один пакет Python, который не установлено в моих пакетах сайтов Python 2.7?
Я пытался использовать add2virtualenv , который является частью virtualenvwrapper.Хотя это «добавляет указанные каталоги в путь Python для текущего активного virtualenv», оно не добавляет ни один из исполняемых файлов, найденных в каталоге virtualenv/bin
.Поэтому произойдет следующее:
$ mkvirtualenv pip-test3
$ add2virtualenv ~/.virtualenvs/pip-test/lib/python2.7/site-packages/nose/
$ nosetests # Fails since missing ~/.virtualenvs/pip-test3/bin/nosetests
- Вопрос № 2 Я что-то упустил из-за того, как
add2virtualenv
работает? - Вопрос# 1 Перефразировано Есть ли лучший метод, чем add2virtualenv, который позволяет нескольким virtualenv ссылаться на один пакет Python, который не установлен в моих пакетах сайтов Python 2.7?
- Вопрос# 3 Если существует способ установки общего пакета Python в несколько virtualenv, есть ли снижение производительности, которое не существует по сравнению с установкой пакетов Python отдельно в каждый virtualenv?
- Вопрос# 4 Должен ли я просто отказаться от экономии места на диске и придерживаться текущего рабочего процесса?