- Как создать виртуальную среду Python 3 на Ubuntu 20.04
- Обновление пакетов системы
- Установка pip для python3
- Создание виртуальной среды для python 3
- Проверка виртуальной среды Python
- Удалить виртуальную среду Python
- Заключение
- Питон в коробке – venv в python 3.3
- Как это работает?
- Как создать?
- Как использовать?
- Обновление
- Расширение EnvBuilder
- Исполняемые скрипты внутри venv
- Установка и использование virtualenv в Python
- Отличия virtualenv и venv
- Установка virtualenv с помощью pip
- Создание виртуальной среды
- Деактивации virtualenv
- Удаление виртуальной среды
- Решение популярных ошибок
- Установка и настройка среды разработки Python 3 в Ubuntu 18.04
- Предварительные требования
- Обновление программного обеспечения
- Проверка версии Python
- Установка pip
- Установка дополнительных инструментов
- Установка venv (Virtual Environment)
- Создание виртуальной среды для приложения
- Активация окружения виртуальной среды
- Тестирование виртуальной среды
- Деактивация виртуальной среды
- Использование в приложениях (shebang)
- Автоматическая активация виртуальной среды при запуске приложения
- Заключение
Как создать виртуальную среду Python 3 на Ubuntu 20.04
Виртуальная среда Python используется для создания изолированной среды для проекта Python. Эта среда содержит интерпретатор, библиотеки и сценарии проекта. Вы можете создать любое количество виртуальных сред для своих проектов, каждая из которых имеет свои собственные зависимости.
С помощью виртуальной среды Python можно избежать глобальную установку пакетов, которая может нарушить работу других проектов.
Говоря простыми словами, виртуальная среда помогает правильно установить определенные версии пакетов, необходимых для проекта python.
Если у вас не установлен Python рекомендую прочитать статью Установка Python в Ubuntu
Обновление пакетов системы
Чтобы обновить Ubuntu 20.04 последними пакетами, выполните команду apt:
$ sudo apt update
$ sudo apt upgrade
Установка pip для python3
Перед установкой виртуальной среды, требуется установить pip. Pip — это менеджер пакетов, который помогает устанавливать, удалять и обновлять пакеты для ваших проектов.
Чтобы установить pip для python 3 используйте команду:
Создание виртуальной среды для python 3
Команда Venv используется в Python для создания виртуальной среды. Пакет venv доступен в репозитории Ubuntu.
Чтобы установить пакет venv, требуется использовать следующую команду:
Теперь, чтобы создать виртуальную среду, введите:
Приведенная выше команда создает каталог с именем «my_env_project«, который содержит pip, интерпретатор, скрипты и библиотеки.
$ ls my_env_project/
bin include lib lib64 pyvenv.cfg share
Теперь вы можете активировать виртуальную среду, введя команду:
Командная строка изменится на вашу среду и будет выглядеть так, как показано ниже:
Проверка виртуальной среды Python
Запустите команду «python» внутри виртуальной среды, чтобы открыть интерпретатор:
Ответ терминала будет следующим:
Python 3.8.5 (default, Jul 28 2020, 12:59:40)
[GCC 9.3.0] on linux
Type «help», «copyright», «credits» or «license» for more information.
Попробую установить пакет NumPy внутри виртуальной среды Python. Для этого воспользуюсь командой:
$ pip install numpy —user
Если вы получите ошибку типа:
“ERROR: Can not perform a ‘–user’ install. User site-packages are not visible in this virtualenv.”
Вам требуется установить пакет include-system-site-packages и установить значение true в файле pyvenv.cfg.
Каждый раз, когда вы устанавливаете новый пакет в своей виртуальной среде, вы должны иметь возможность импортировать его в свой проект.
/my_env_project$ python
>>> import numpy
Давайте протестируем математическую функцию:
Чтобы выйти из интерпретатора, введите:
Вы можете создать скрипт python и запустить его из виртуальной среды python 3.
Вы увидите следующий результат:
Чтобы выполнить сценарий, введите:
Сценарий выполняется внутри виртуальной среды с именем my_env_project.
Удалить виртуальную среду Python
Для выхода из виртуальной среды используйте команду exit или сочетание клавиш Ctrl+d. Чтобы удалить виртуальную среду, выполните следующую команду:
Приведенная выше команда не удалит каталог my_env_project. Для удаления каталога потребуется использовать команду rm.
Заключение
Надеюсь что данная статья помогла вам узнать, как правильно создать виртуальную среду для ваших проектов Python 3 на Ubuntu 20.04.
Источник
Питон в коробке – venv в python 3.3
Наверняка, большинство из тех, кто разрабатывает или деплоит Python приложения, использует виртуальные окружения. В частности через virtualenv, написанный Ian Bicking.
Идея оказалась так хороша и распространена, что нечто похожее теперь присутствует в Python 3.3 из коробки в виде модуля venv. Он почти такой же, как virtualenv, только немного лучше.
Как это работает?
Основное отличие venv в том, что он встроен в интерпретатор и может отрабатывать ещё до загрузки системных модулей. Для этого, при определении базовой директории с библиотеками, используется примерно такой алгоритм:
- в директории с интерпретатором или уровнем выше ищется файл с именем pyvenv.cfg ;
- если файл найден, в нём ищется ключ home, значение которого и будет базовой директорией;
- в базовой директории идёт поиск системной библиотеки (по спец. маркеру os.py );
- если что-то пошло не так – всё откатывается к захардкоженному в бинарнике значению.
Вот и вся суть venv, всё остальное уже обёртка над этим.
Как создать?
Всё очень просто, нужно вызвать через ключ -m модуль venv , либо использовать встроенный скрипт pyvenv:
Скрипт создаст указанную директорию, вместе со всеми родительскими директориями, если потребуется, и построит виртуальное окружение. Это можно делать и в Windows, только вызов будет чуть более многословным:
При создании можно добавлять различные параметры, как, например, включение системных site-packages или использование symlink вместо копирования интерпретатора.
В отличии от virtualenv новый venv требует чтобы создаваемая директория не существовала, либо была пустой. Вероятно, это сделано, чтобы не допускать конфликтов с существующими файлами. Это бага в python 3.3, в 3.4 уже исправлено. (Спасибо, svetlov).
Как использовать?
Можно использовать старый добрый метод активации через bin/activate (Scripts/activate в windows):
А можно и не использовать, достаточно лишь вызвать интерпретатор из окружения и всё сработает автоматически:
Это конечно не сработает для скриптов, запускаемых напрямую через #!/usr/bin/env python3 , для них всё равно нужно будет, как и раньше, делать активацию. Решение есть – о нём чуть ниже.
Обновление
Если в вашей системе обновилась версия python, то виртуальное окружение иногда тоже нужно обновить.
Всё просто – вызываем venv аналогично созданию окружения, добавив ключ —upgrade :
Это произойдёт автоматически, если использовать symlink, но если вы хотите кроме изоляции делать фиксацию версии python и библиотек, я бы рекомендовал делать обновление вручную.
Расширение EnvBuilder
Вся работа по созданию окружения падает на класс venv.EnvBuilder , этот класс написан так, чтобы его можно было расширять.
Например, можно при инициализации окружения ставить туда distribute , pip и необходимые начальные зависимости из requirements.txt . Более сложную логику лучше оставить на совести более предназначенных для этого инструментов, типа buildout или make, но первоначальную настройку можно провести и на уровне EnvBuilder.
При создании окружения используется метод create(self, env_dir) , в исходном классе он выглядит так:
Метод описывает суть всего процесса: создание директории ( ensure_directories ), конфигурацию ( create_configuration ), добавление бинарников питона ( setup_python ) и добавление скриптов активации ( setup_scripts ).
В конце вызывается хук post_setup , в который вы можете добавлять свои действия. Видно, что post_setup выполняется только при создании окружения, а при — upgrade он выполняться не будет. Это легко исправить, добавив ещё один хук:
В качестве параметров при вызове методов после ensure_directories будет передаваться context — объект, содержащий в виде атрибутов всю необходимую информацию о создаваемом окружении. Почему-то в документации пока эти ключи не описаны, но вы легко сможете понять всё самостоятельно, заглянув в код метода ensure_directories в базовом классе. Приведу самые полезные из атрибутов:
- context.bin_path — путь к директории с бинарниками и исполняемыми скриптами,
- context.env_dir — путь к директории с созданным окружением,
- context.env_exe — путь к бинарнику внутри окружения.
Соответственно, для запуска python скрипта внутри окружения, можно сделать:
Исполняемые скрипты внутри venv
Вернёмся к проблеме с исполняемыми скриптами внутри виртуального окружения.
В virtualenv для них достаточно было указать интерпретатор через #/usr/bin/env python3 и использовать, не забывая сделать . bin/activate . Если вас такой подход устраивал, то вы можете им продолжать пользоваться и в venv .
Есть и новый путь. Внутри EnvBuilder реализован метод install_scripts(self, context, path) , который автоматизирует копирование скриптов и бинарников в создаваемое окружение. В path необходимо передать путь к директории с вложенными поддиректориями «common», «nt», «posix» и т.д. В поддиректории, в свою очередь, положить необходимые скрипты или бинарники. В «common» скрипты для всех платформ, в «nt» – для Windows, «posix» – для Linux, Mac OS X и других posix систем.
Кроме того, для текстовых файлов выполняется постановка значений. Из коробки поддерживаются:
- __VENV_DIR__
- __VENV_NAME__
- __VENV_BIN_NAME__
- __VENV_PYTHON__
Пример шаблона запускаемого python скрипта:
__VENV_PYTHON__ будет заменено на полный путь к интерпретатору python в виртуальном окружении.
После установки такого скрипта через install_scripts , его можно будет запускать, без необходимости активации окружения через bin/activate.
Источник
Установка и использование virtualenv в Python
virtualenv — это инструмент для создания изолированной среды Python. У такой среды есть отдельна установка python, при ее использовании загруженные библиотеки недоступны другим. Можно сделать так, чтобы у этой среды не было доступа к глобальным библиотекам.
Virtualenv — простой и рекомендованный способ настройки среды Python.
Отличия virtualenv и venv
Venv — это пакет, который идет по умолчанию с Python 3.3+. В версии Python 2 его нет.
Virtualenv — более продвинутая библиотека. По ссылке можно ознакомиться с основными отличиями.
Виртуальную среду можно создать и с помощью venv, но все-таки рекомендуется установить и использовать virtualenv для полноценной работы.
Установка virtualenv с помощью pip
Для установки virtualenv с Python нужно использовать pip. Желательно предварительно обновить этот инструмент.
Или используйте python3 , если python ссылается на 2 версию.
После обновления можно установить и virtualenv:
Создание виртуальной среды
1. Перейдите в директорию, в которой вы хотите создать виртуальную среду(например папка проекта).
2. Создайте виртуальную среду, при необходимости указав конкретную версию Python. Следующая команда создает virtualenv с именем venv_name и использует флаг -p , чтобы указать полный путь к версии Python:
Назвать среду можно как угодно
После выполнения команды вы увидите логи:
Эта команда создает локальную копию среды. Работая с ней, важно не забывать об активации, чтобы использовались нужные версии конкретных инструментов и пакетов.
Если при установке возникла ошибка setuptools pip failed with error code 1` error , используйте следующую команду, чтобы решить проблему:
3. Для активации новой виртуальной среды используйте команду:
После этого название текущей среды отобразится слева от символа ввода: (venv_name) username@desctop:
Теперь при установке любого пакета с помощью pip он будет размещаться в папках этой среды, изолированно от глобальной установки.
Деактивации virtualenv
После завершения работы деактивировать виртуальную среду можно с помощью команды deactivate .
Введите ее и приставка venv_name пропадет. Вы вернетесь к использованию глобально версии python.
Удаление виртуальной среды
Для удаления виртуальной среды достаточно просто удалить папку проекта. Для этого используется следующая команда:
Решение популярных ошибок
Ошибки при создании virtualenv. При попытке создать virtualenv с Python 3.7 могут возникнуть следующие ошибки.
Для их исправления нужно добавить следующую строку в .bash_profile.
Использование полного пути к виртуальной среде. Может быть такое, что при использовании команды virtualenv будет использована не та версия. Для решения проблемы нужно лишь задать полные пути как к virtualenv, так и к Python в системе.
А получить их можно с помощью этой команды:
Источник
Установка и настройка среды разработки Python 3 в Ubuntu 18.04
Python — это гибкий и универсальный язык программирования, который является отличным решением для реализации сценариев, автоматизации, анализа данных, машинного обучения и общей разработки.
Из этой статьи вы узнаете, как установить Python и настроить среду разработки на Ubuntu 18.04.
Предварительные требования
Для работы вам понадобится сервер Ubuntu 18.04 с базовыми настройками.
Обновление программного обеспечения
В системе Ubuntu 18.04 и других дистрибутивах, основанных на Debian, Python 3 и Python 2 установлены по умолчанию, поэтому на первом шаге достаточно выполнить обновление пакетов. Войдите на сервер Ubuntu 18.04 под sudo и обновите пакеты с помощью APT (Advanced Packaging Tool):
Флаг –y автоматически подтвердит любые запросы системы.
Проверка версии Python
Проверьте версию Python 3 с помощью следующей команды:
В ответе вы увидите номер текущей версии, например:
Установка pip
Чтобы управлять программными пакетами Python, установите pip — инструмент, который помогает устанавливать необходимые для проекта библиотеки и модули и управлять ими.
Теперь вы можете устанавливать пакеты Python3 с помощью pip :
Вместо имя_пакета укажите имя любого пакета или библиотеки Python, например, Django для веб-разработки или NumPy для научных вычислений. Например, для установки NumPy введите pip3 install numpy .
Установка дополнительных инструментов
Есть еще несколько пакетов и инструментов для разработки, чтобы обеспечить надежную настройку среды:
Установка venv (Virtual Environment)
Виртуальная среда обеспечивает изолированное пространство для проектов Python на сервере, то есть, все необходимые зависимости — исполняемые файлы, библиотеки и прочие файлы копируются в некоторый выбранный каталог, а приложение использует их, а не установленные в системе. Это позволяет обеспечить стабильность среды разработки и чистоту основной системы.
Мы будем использовать модуль venv , часть стандартной библиотеки Python 3, который можно установить с помощью:
Создание виртуальной среды для приложения
Создать новую среду можно с помощью модуля venv . В примере ниже мы назовем новую среду env , вы можете указать любое желаемое название.
Активация окружения виртуальной среды
Активируйте виртуальную среду с помощью приведенной ниже команды, где env — это имя вашего окружения разработки.
После активации строка приглашения интерпретатора команд будет иметь префикс с именем среды:
Тестирование виртуальной среды
Запустите интерпретатор Python:
Помните, что в виртуальной среде Python 3 вместо команды python3 можно использовать python , а вместо pip3 — pip .
Воспользуйтесь функцией print() , чтобы создать стандартную программу «Hello, World»:
Деактивация виртуальной среды
Для деактивации среды используйте специальную команду:
Использование в приложениях (shebang)
Очень важно в приложениях изменить полный путь #!/usr/bin/python3 на #!/usr/bin/env python . Это позволит выбирать правильный транслятор, независимо от того, выполняется ли скрипт в рамках venv и или в системном окружении. Если вы оставляете путь #!/usr/bin/python3 , всегда будет использоваться системный интерепретатор, чувствительный к изменению среды.
Автоматическая активация виртуальной среды при запуске приложения
Для автоматической активации виртуальной среды при запуске приложения вы можете создать скрипт-обертку, который выполнит необходимые действия.
Подготовим скрипт myapp/run.sh для запуска приложения service.py в рамках виртуального окружения со следующим содержимым:
Установим права на исполнение и протестируем его запуск:
Заключение
Изолированная виртуальная среда разработки Python создана, можно приступать к разработке на python.
Источник