Сделать virtualenv наследовать определенные пакеты из ваших глобальных пакетов сайтов
Я ищу способ сделать virtualenv, который будет содержать только некоторые библиотеки (которые я выбрал) базовой установки python.
Чтобы быть более конкретным, я пытаюсь импортировать мой matplotlib в virtualenv во время создания virtualenv. Он не может быть установлен эффективно с помощью pip или easy_install, так как он пропускает некоторые компиляторы fortran. То, как я это делал до сих пор, было вручную скопировать из
/usr/lib/python2.7/dist-packages/ to virtualenv_name/lib/python2.7/dist-packages/
однако это предотвращает регистрацию manully импортированных ссылок yolk (который печатает все доступные в настоящее время libs в virtualenv).
Итак, есть ли способ сделать выборочный вариант
virtualenv --system-site-packages
Ответы
Ответ 1
Создайте среду с помощью virtualenv --system-site-packages
. Затем активируйте virtualenv, и когда вы устанавливаете вещи, используйте pip install --ignore-installed
или pip install -I
. Таким образом, pip установит то, что вы запросили локально, хотя существует общесистемная версия. Ваш интерпретатор python будет выглядеть вначале в каталоге виртуального каталога, поэтому эти пакеты должны скрывать глобальные.
Ответ 2
Вы можете использовать --system-site-packages
, а затем "переустановить" конкретные материалы для вашего виртуального пользователя. Таким образом, все, что вы установите в ваш virtualenv, будет взято оттуда, иначе оно будет взято из вашей системы.
Ответ 3
Установить виртуальное env с помощью
virtualenv --system-site-packages
и используйте pip install -U to install matplotlib
Ответ 4
Вы можете использовать virtualenv --clear
. который не будет устанавливать какие-либо пакеты, а затем установите те, которые вы хотите.