Виртуальные среды Python используются для создания изолированных сред Python, чтобы избежать конфликтов зависимостей и версий, а также косвенно решать проблемы с разрешениями. Но как проще всего настроить и использовать его в Ubuntu?
Виртуальные среды Python используются для создания изолированных сред Python, чтобы избежать конфликтов зависимостей и версий, а также косвенно решать проблемы с разрешениями. Но как проще всего настроить и использовать его в Ubuntu?
Ответы:
virtualenvwrapper
(удобные обертки для функциональности virtualenv
)Установить virtualenv
с
sudo apt-get install virtualenv
(для Ubuntu 14.04 (надежная) установка python-virtualenv
)
Причина, по которой мы также устанавливаем virtualenvwrapper, заключается в том, что он предлагает удобные и простые команды для управления виртуальными средами. Есть два способа установки virtualenvwrapper
:
Бегать
sudo apt install virtualenvwrapper
тогда беги
echo "source /usr/share/virtualenvwrapper/virtualenvwrapper.sh" >> ~/.bashrc
Установить и / или обновить пип
Установите pip для Python 2 с
sudo apt-get install python-pip
или для Python 3
sudo apt-get 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
Сначала мы экспортируем 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
Наслаждайтесь!
Спасибо автору этого поста .
--no-site-packages
по умолчанию и --distribute
устарел
mkvirtualenv test
не работает, см. Также: stackoverflow.com/questions/15608236/…
Виртуальные среды предлагают способ управления и изоляции зависимостей для каждого проекта. Кроме того, они также избегают всей 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 update
sudo apt install virtualenv
cd ~/desired_directory # cd to desired_directory
virtualenv venv # create virtualenv named venv for default system Python, which is Python 2 for Ubuntu
source venv/bin/activate # activate virtualenv
pip install -U pip # upgrade pip in case it is outdated
pip install desired_package # install desired_package
Если вы хотите создать virtualenv для Python 3, замените virtualenv venv
на:
virtualenv venv -p python3
Узнайте больше о различных наворотах virtualenv
на https://virtualenv.pypa.io/en/stable/ .
source
спасает меня много команд
Это просто, вы устанавливаете python-virtualenv . Затем вы можете создать virtualenv с помощью virtualenv
команды. Смотрите их документацию для получения дополнительной информации.
Виртуальные среды (venvs) настолько популярны, что функциональность теперь включена в сам Python (начиная с версии 3.3). Чтобы использовать его в Ubuntu, вам необходимо установить python3-venv
(так как ensurepip
модуль недоступен):
sudo apt-get install python3-venv
После этого вы можете использовать
pyvenv myvirtualenv
создать виртуальную среду под названием myvirtualenv
. Вы можете использовать
source myvirtualenv/bin/activate
активировать виртуальную среду. Для деактивации просто наберите
deactivate
EDIT:pyvenv
сценарий устарел в пользу python3 -m venv
. Это предотвращает путаницу в отношении того, к чему pyvenv
подключен интерпретатор Python и, следовательно, какой интерпретатор Python будет использоваться виртуальной средой. ( источник )
python-pip
иpython-virtualenv
устанавливаются через репозиторий Ubuntu, нет необходимости в ручной установке.