Перейти к содержимому

Как выйти из venv

  • автор:

Python Virtualenv Linux Mint. Работает не корректно

По порядку
1. Устанавливаю через Terminal виртуальное окружение virtualenv v
2. Активирую его в папке source v/bin/activate
3. Активация срабатывает, в терминале как и положено отображается (v)
Но не работает само окружение. При команде pip3 freeze он показывает все пакеты установленные на pip3 и при установки например pip3 install numpy пакет ставится глобально. Окружение создаётся только под pip а не под pip3 . В гугл нашёл следующий вариант: установить окружение таким образом:
virtualenv -p /usr/bin/python3.6 venv . В таком случае окружение устанавливается для pip3 но не смотря на то что pip3 freeze показывает только те пакеты которые я ставил в окружение, при запуске скрипта он их не видит. Подскажите как выйти из проблемы.

Отслеживать

задан 26 мар 2019 в 19:22

269 1 1 золотой знак 4 4 серебряных знака 16 16 бронзовых знаков

ОС Linux. Ставил sudo pip3 install virtualenv

26 мар 2019 в 20:26

Покажите точную последовательность действий от создания virtualenv (вариант с -p является правильным, если что) до неудачного запуска скрипта с numpy — копированием текста из терминала или хотя бы скриншотом

Настройка виртуального окружения в Linux

Операционная система Linux получила большую популярность среди админов и разработчиков благодаря ряду преимуществ, таких как бесплатное распространение, наличие открытого исходного кода, низкие требования к вычислительным ресурсам.

Python интерпретатор предустановлен в большинстве дистрибутивов Linux. Согласно рейтингу TIOBE, на текущий момент самым упоминаемым в поисковых запросах языком программирования является python. Он обладает низким порогом входа, но имеет большой спектр возможностей для применения.

Использование python и Linux «в связке» может сильно облегчить вам жизнь. Я расскажу о том, как настроить python в Linux под нужды своего проекта.

Определение виртуальной среды

Виртуальная окружение (или виртуальная среда) — это изолированная среда для проекта. Это «песочница», в рамках которой запускается приложение со своими версиями библиотек, обновление и изменение которых не затронет другие приложения, использующие те же библиотеки. Тем самым использование виртуальных сред позволяет избежать конфликтов версий.

Виртуальное окружение со всеми необходимыми настройками можно «передавать» вместе с приложением. Так другому разработчику будет проще работать с вашим проектом.

Также библиотеки, которые необходимы только в одном проекте, можно подгрузить в виртуальное окружение и тем самым не засорять глобальное окружение.

Проверка версии python

Как уже говорилось ранее, python предустановлен в большинстве дистрибутивов Linux. Я использовал версию Ubuntu 20.04. Проверить текущую версию python можно с помощью команды: python3 -V.

Обновление пакетов

Вначале рассмотрю работу с python библиотеками в Linux.

Advanced Package Tool (apt) – это пакетный менеджер, позволяющий производить различные манипуляции с пакетами: устанавливать, удалять, обновлять, искать, загружать без установки. При этом все зависимости будут разрешаться автоматически.

Пакет – это архив, в котором содержатся бинарные и конфигурационные файлы, информация о том, куда их разместить в файловой системе, и список действий по установке. В Linux python библиотеки являются пакетами.

В Linux есть список репозиториев, из которых происходит установка пакетов. Список хранится в текстовом файле /etc/apt/sources.list, а также в директории /etc/apt/sources.list.d/. При выполнении команды apt update, apt обращается к списку репозиториев и из каждого репозитория в списке получает информацию о пакетах, находящихся в нём. Вся эта информация сохраняется в операционной системе.

Если выходит новая версия библиотеки, то apt не узнает об этом, пока не будет обновлена информация в репозиториях. Поэтому, если установить пакет, предварительно не выполнив обновление, то будет установлена та версия пакета, информация о которой хранится в системе в данный момент.

Для обновления пакетов необходимо выполнить следующие две команды.

Первая команда: sudo apt update.

Вторая команда: sudo apt -y upgrade.

Флаг -y в команде обозначает автоматическое подтверждение запросов на установку.

Установка пакета venv

Для работы с виртуальным окружением в Linux нужно установить пакет venv с помощью команды sudo apt install python3-venv.

Создание виртуальной среды в Linux

Создать виртуальное окружение можно командой python3 -m venv my_venv.

My_venv – название виртуального окружения.

Приведенная выше команда создает каталог с именем «my_venv» (а также родительские каталоги, которые ещё не существуют), содержащий менеджер пакетов pip, интерпретатор, скрипты и библиотеки.

С помощью команды ls -la можно увидеть файлы в текущей директории.

Если вы хотите создать папку с окружением в конкретной директории, то вместо названия окружения нужно указать путь к папке. Например, python3 -m venv ~/my_venv.

Далее перейду в созданный каталог и посмотрю содержимое созданной папки.

Файл pyvenv.cfg содержит ключ, который будет указывать на ту версию Python, для которой запущена эта команда.

Каталог bin содержит копию/символическую ссылку двоичных файлов Python.

Каталог include включает в себя С-заголовки, компилирующие пакеты Python.

В каталог share входит python wheels. Python wheels — это формат готовых пакетов для Python, который помогает ускорить разработку программного обеспечения за счет сокращения количества операций компиляции.

Каталог lib в виртуальной среде имеет такую же структуру, как каталог lib в глобальном окружении. И содержит папку site-packages, в которую устанавливаются библиотеки.

Активация виртуальной среды

Виртуальное окружение создано. Для начала работы с окружением нужно его активировать.

Чтобы начать использовать эту виртуальную среду, необходимо активировать её, запустив скрипт под названием activate:

После активации строка консоли будет иметь префикс с именем среды.

Можно проверить версию python.

А также посмотреть список установленных в окружении библиотек.

Установка библиотек внутри виртуальной среды

Попробую установить библиотеку в окружение.

После активации все библиотеки будут устанавливаться в данное виртуальное окружение.

Чтобы проверить как установилась библиотека, можно попробовать импортировать её.

Если при импорте ошибок не было, значит, установка библиотеки прошла успешно.

Совместное использование виртуальной среды

Если вы хотите, чтобы другие могли на своих компьютерах запустить код вашего проекта, то помимо кода им необходимо иметь те же версии библиотек, что и у вас.

Для этого создам файл, в котором будут прописаны все необходимые библиотеки и их версии.

Выполню следующую команду:

Файл requirements.txt содержит все библиотеки (с указанием их версий), которые установлены в данном окружении.

Установить все эти библиотеки можно выполнив одну команду в терминале: pip install -r requirements.txt.

После успешной установки библиотек другой человек сможет запустить ваш проект на своем компьютере.

Деактивация виртуальной среды

Чтобы выйти из виртуального окружения, необходимо ввести команду deactivate.

В данном посте я рассмотрел тему виртуальных окружений в Linux. Данный материал позволит более осознанно подходить к процессу разработки и облегчит поддержку ваших проектов. Если остались вопросы, буду рад ответить на них в комментариях.

Установка и использование virtualenv в Python

virtualenv — это инструмент для создания изолированной среды Python. У такой среды есть отдельна установка python, при ее использовании загруженные библиотеки недоступны другим. Можно сделать так, чтобы у этой среды не было доступа к глобальным библиотекам.

Virtualenv — простой и рекомендованный способ настройки среды Python.

Отличия virtualenv и venv

Venv — это пакет, который идет по умолчанию с Python 3.3+. В версии Python 2 его нет.

Virtualenv — более продвинутая библиотека. По ссылке можно ознакомиться с основными отличиями.

Виртуальную среду можно создать и с помощью venv, но все-таки рекомендуется установить и использовать virtualenv для полноценной работы.

Установка virtualenv с помощью pip

Для установки virtualenv с Python нужно использовать pip. Желательно предварительно обновить этот инструмент.

python -m pip install --upgrade pip

Или используйте python3 , если python ссылается на 2 версию.

После обновления можно установить и virtualenv:

pip install virtualenv # или pip3

Создание виртуальной среды

1. Перейдите в директорию, в которой вы хотите создать виртуальную среду(например папка проекта).

~$ cd test ~/test$

2. Создайте виртуальную среду, при необходимости указав конкретную версию Python. Следующая команда создает virtualenv с именем venv_name и использует флаг -p , чтобы указать полный путь к версии Python:

virtualenv -p /usr/bin/python venv_name # или virtualenv venv_name

Назвать среду можно как угодно

После выполнения команды вы увидите логи:

Running virtualenv with interpreter /usr/bin/python Already using interpreter /usr/bin/python Using base prefix '/usr' New python executable in /home/username/test/venv_name/bin/python Installing setuptools, pip, wheel. done.

Эта команда создает локальную копию среды. Работая с ней, важно не забывать об активации, чтобы использовались нужные версии конкретных инструментов и пакетов.

Если при установке возникла ошибка setuptools pip failed with error code 1` error , используйте следующую команду, чтобы решить проблему:

pip install --upgrade setuptools # или pip3

3. Для активации новой виртуальной среды используйте команду:

source venv_name/bin/activate

После этого название текущей среды отобразится слева от символа ввода: (venv_name) username@desctop:~/test$

Теперь при установке любого пакета с помощью pip он будет размещаться в папках этой среды, изолированно от глобальной установки.

Деактивации virtualenv

После завершения работы деактивировать виртуальную среду можно с помощью команды deactivate .

Введите ее и приставка venv_name пропадет. Вы вернетесь к использованию глобально версии python.

Удаление виртуальной среды

Для удаления виртуальной среды достаточно просто удалить папку проекта. Для этого используется следующая команда:

rm -rf venv_name

Решение популярных ошибок

Ошибки при создании virtualenv. При попытке создать virtualenv с Python 3.7 могут возникнуть следующие ошибки.

AttributeError: module 'importlib._bootstrap' has no attribute 'SourceFileLoader' OSError: Command /home/username/venv/bin/python3 -c "import sys, pip; sys. d\"] + sys.argv[1:]))" setuptools pip failed with error code 1

Для их исправления нужно добавить следующую строку в .bash_profile.

export LC_ALL="en_US.UTF-8"

Использование полного пути к виртуальной среде. Может быть такое, что при использовании команды virtualenv будет использована не та версия. Для решения проблемы нужно лишь задать полные пути как к virtualenv, так и к Python в системе.

А получить их можно с помощью этой команды:

/home/username/opt/python-3.8.0/bin/virtualenv -p /home/username/opt/python-3.8.0/bin/python3 venv

Как отключить, даективировать или выйти из venv – Python virtualenv

Если вы используете virtualenv и virtualenvwrapper, то наверняка переключаетесь между оболочками командой workon. Единственный способ выйти из среды это выйти из оболочки и запустить новую.
Обычно после активации virtualenv вы получаете функцию оболочки с именем $ deactivate.

Содержание скрыть

Как отключить virtualenv

Функция:
$ deactivate
Вернёт всё в нормальное русло. Если внимательно посмотреть на код для virtualenvwrapper – он так же поддерживает такой способ деактивации для выхода из всех virtualenv.

Как выйти из среды Anaconda

Если вы хотите выйти из среды Anaconda, то тут зависит от версии, которой вы пользуетесь. Последние версии (например, 4.6) устанавливают функцию сразу в рабочей оболочке. В этом случае вы должны использовать команду:
conda deactivate

В более ранних версии Anaconda можно реализовать отключение с помощью автономного скрипта: source deactivate Если у вас остались вопросы, можете почитать остальные комментарии на StackOverflow по этой ссылке: stackoverflow.com/questions/990754/how-to-leave-exit-deactivate-a-python-virtualenv.

Евгений Загорский IT специалист. Автор информационных статей на тему Андроид смартфонов и IOS смартфонов. Эксперт в области решения проблем с компьютерами и программами: установка, настройка, обзоры, советы по безопасности ваших устройств. В свободное время занимается дизайном и разработкой сайтов.

  • Telegram
  • Instagram

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *