Я знаю, что virtualenv, если не передал аргумент --no-site-packages
при создании новой виртуальной среды, свяжет пакеты в /usr/local/lib/python2.7/site-packages
(для Python 2.7) с вновь созданной виртуальной средой. На Ubuntu 12.04 LTS у меня есть три местоположения, где могут быть установлены пакеты Python 2.7 (с использованием установленной по умолчанию Ubuntu Python 2.7):
-
/usr/lib/python2.7/dist-packages
: у меня есть моя глобальная установка пакетов ipython, scipy, numpy, matplotlib, которые мне сложнее и трудоемко устанавливать отдельно (и все их зависимости), если они недоступны через scipy stack. -
/usr/local/lib/python2.7/site-packages
: это пусто, и я думаю, что он останется таким же на Ubuntu, если я не установлю пакет из исходного кода. -
/usr/local/lib/python2.7/dist-packages
: у этого есть очень важные локальные пакеты для астрономии, особенно те, которые связаны с PyRAF, STScI и т.д., и они чрезвычайно сложны и трудоемки для установки отдельно.
Обратите внимание, что глобальная директория, такая как /usr/lib/python2.7/site-packages
, не существует в моей системе. Также обратите внимание, что моя глобальная установка ipython, scipy и т.д. Позволяет мне использовать эти пакеты "на лету" без необходимости запускать/активировать виртуальную среду каждый раз.
Естественно, теперь я хочу использовать virtualenv для создания одной виртуальной среды в домашнем каталоге пользователя, который я буду использовать для будущих проектов. Тем не менее, я хотел бы, чтобы эта виртуальная среда была создана, чтобы связать/скопировать все мои пакеты в местах (1) и (3) в списке выше. Основная причина этого заключается в том, что я не хочу проходить процесс pip install
(если это вообще возможно) для повторной установки ipython, scipy, astro-пакетов и т.д. Для этого (и, возможно, другого) виртуального сред.
Вот мои вопросы:
- Есть ли способ указать virtualenv, что я хотел бы, чтобы он связывал/копировал пакеты в этих двух каталогах
dist-packages
для виртуальных сред, которые создаются в будущем? - Когда я в конечном итоге обновляю мою глобальную установку scipy, ipython и т.д. в двух каталогах
dist-packages
, будет ли это также обновлять/изменять пакеты, используемые моей виртуальной средой (и которые они изначально получили при создании виртуального виртуального диска)? - Если я когда-нибудь установил пакет из источника в Ubuntu, он будет идти в
/usr/local/lib/python2.7/dist-packages
или/usr/local/lib/python2.7/site-packages
?
Заранее благодарим за помощь!