Виртуальные среды Python используются для создания изолированных сред python, чтобы избежать конфликтов зависимостей и версий, а также косвенно решать проблемы с разрешениями. Но каков самый простой способ настроить его и использовать в Ubuntu?
С virtualenvwrapper
(удобные для пользователя оболочки для функциональности virtualenv
)
Установка virtualenv
Устанавливать virtualenv
с
sudo apt install virtualenv
Установите virtualenvwrapper
Причина, по которой мы также устанавливаем virtualenvwrapper это потому, что он предлагает приятные и простые команды для управления вашими виртуальными средами. Существует два способа установки virtualenvwrapper
:
Как пакет Ubuntu (начиная с Ubuntu 16.04)
Бежать
sudo apt install virtualenvwrapper
затем бегите
echo "source /usr/share/virtualenvwrapper/virtualenvwrapper.sh" >> ~/.bashrc
Использование pip
-
Установите и/или обновите pip
Установите pip для Python 2 с помощью
sudo apt install python-pip
или для Python 3
sudo apt install python3-pip
(если вы используете Python 3, вам может потребоваться использовать
pip3
вместоpip
в остальной части этого руководства).Необязательно (но рекомендуется): Включите автозаполнение bash для pip
Бежать
pip completion --bash >> ~/.bashrc
и бежать
source ~/.bashrc
чтобы включить. -
Установите virtualenvwrapper
Потому что мы хотим избежать
sudo pip
мы устанавливаемvirtualenvwrapper
локально (по умолчанию в~/.local
) с:pip install --user virtualenvwrapper
и
echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrc
-
Исходный virtualenvwrapper в
.bashrc
echo "source ~/.local/bin/virtualenvwrapper.sh" >> ~/.bashrc
Настройка virtualenv и virtualenvwrapper:
Сначала мы экспортируем WORKON_HOME
переменная, содержащая каталог, в котором должны храниться наши виртуальные среды. Давайте сделаем это ~/.virtualenvs
export WORKON_HOME=~/.virtualenvs
теперь также создайте этот каталог
mkdir $WORKON_HOME
и поместить этот экспорт в наш ~/.bashrc
файл, так что эта переменная определяется автоматически
echo "export WORKON_HOME=$WORKON_HOME" >> ~/.bashrc
Мы также можем добавить некоторые дополнительные трюки например, следующее, которое гарантирует, что если pip
создает дополнительную виртуальную среду, она также размещается в нашем WORKON_HOME
каталог:
echo "export PIP_VIRTUALENV_BASE=$WORKON_HOME" >> ~/.bashrc
Источник ~/.bashrc для загрузки изменений
source ~/.bashrc
Проверьте, работает ли это
Теперь мы создаем нашу первую виртуальную среду. То -p
аргумент необязателен, он используется для установки используемой версии Python; он также может быть python3
например.
mkvirtualenv -p python2.7 test
Вы увидите, что среда будет настроена, и ваше приглашение теперь содержит имя вашей активной среды в круглых скобках. Также, если вы сейчас запустите
python -c "import sys; print sys.path"
вы должны увидеть много /home/user/.virtualenv/...
потому что теперь он не использует ваши системные пакеты сайтов.
Вы можете деактивировать свою среду, выполнив
deactivate
и если вы хотите поработать над этим снова, просто введите
workon test
Наконец, если вы хотите удалить свою среду, введите
rmvirtualenv test
Наслаждайтесь!
Благодаря автору этот пост в блоге.
Виртуальные среды предлагают способ управления и изоляции зависимостей для каждого проекта. Более того, они также избегают всего sudo pip install
ситуация, которая представляет собой угрозу безопасности, как я объяснил в https://askubuntu.com/a/802594/15003. Официальная документация по Python также поощряет использование виртуальных сред.
Самый простой способ создания и использования виртуальных сред как для Python 2, так и для Python 3 - это установить virtualenv
с помощью apt
или apt-get
. Для каждого проекта Python создайте virtualenv, а затем активируйте его. Обратите внимание, что virtualenv специфичен для конкретной версии Python. После активации используйте pip
для установки пакетов Python как обычно, независимо от того, используете ли вы Python 2 или 3; нет необходимости использовать pip3
для Python 3. sudo
используется только для установки virtualenv
и не используется с pip
, таким образом, избегая вышеупомянутого риска для безопасности. Команды для этого следующие:
sudo apt updatesudo apt install virtualenvcd ~/desired_directory # cd to desired_directoryvirtualenv venv # create virtualenv named venv for default system Python, which is Python 2 for Ubuntusource venv/bin/activate # activate virtualenvpip install -U pip # upgrade pip in case it is outdatedpip install desired_package # install desired_package
Если вы хотите создать virtualenv для Python 3, замените virtualenv venv
с:
virtualenv venv -p python3
Узнайте больше о различных прибамбасах и прибамбасах для virtualenv
около https://virtualenv.pypa.io/en/stable/.
Это просто, вы устанавливаете python-virtualenv. Затем вы можете создать virtualenv с помощью virtualenv
команда. Видеть их документация для большего.
С модуль venv доступно с Python 3.3 (и Ubuntu 15.10)
Виртуальные среды (VENV) настолько популярны, что теперь эта функциональность включена в сам python (начиная с версии 3.3). Чтобы использовать его в Ubuntu, вам необходимо установить python3-venv
(с тех пор, как ensurepip
модуль недоступен):
sudo apt-get install python3-venv
После этого вы можете использовать
pyvenv myvirtualenv
для создания виртуальной среды, называемой myvirtualenv
. Затем вы можете использовать
source myvirtualenv/bin/activate
чтобы активировать виртуальную среду. Для деактивации просто введите
deactivate
РЕДАКТИРОВАТЬ: То pyvenv
сценарий устарел в пользу python3 -m venv
. Это предотвращает путаницу в отношении того, какой интерпретатор Python pyvenv
подключен и, следовательно, какой интерпретатор Python будет использоваться виртуальной средой. (источник)