Виртуальные среды 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, нет необходимости в ручной установке.