- Установка и настройка среды разработки Python 3 в Ubuntu 18.04
- Предварительные требования
- Обновление программного обеспечения
- Проверка версии Python
- Установка pip
- Установка дополнительных инструментов
- Установка venv (Virtual Environment)
- Создание виртуальной среды для приложения
- Активация окружения виртуальной среды
- Тестирование виртуальной среды
- Деактивация виртуальной среды
- Использование в приложениях (shebang)
- Автоматическая активация виртуальной среды при запуске приложения
- Заключение
- Installing packages using pip and virtual environments¶
- Installing pip¶
- Installing virtualenv¶
- Creating a virtual environment¶
- Activating a virtual environment¶
- Виртуальные окружения Python при помощи venv
- Создание виртуального окружения
- Активация виртуального окружения
- Работа в виртуальном окружении
- Хранение конфигурации
- Использование вместе с системой контроля версий git
Установка и настройка среды разработки Python 3 в Ubuntu 18.04
Из этой статьи вы узнаете, как установить Python и настроить среду разработки на Ubuntu 18.04.
Предварительные требования
Для работы вам понадобится сервер Ubuntu 18.04 с базовыми настройками.
Обновление программного обеспечения
В системе Ubuntu 18.04 и других дистрибутивах, основанных на Debian, Python 3 и Python 2 установлены по умолчанию, поэтому на первом шаге достаточно выполнить обновление пакетов. Войдите на сервер Ubuntu 18.04 под sudo и обновите пакеты с помощью APT (Advanced Packaging Tool):
sudo apt update sudo apt -y upgrade
Флаг –y автоматически подтвердит любые запросы системы.
Проверка версии Python
Проверьте версию Python 3 с помощью следующей команды:
В ответе вы увидите номер текущей версии, например:
Установка pip
Чтобы управлять программными пакетами Python, установите pip — инструмент, который помогает устанавливать необходимые для проекта библиотеки и модули и управлять ими.
sudo apt install -y python3-pip
Теперь вы можете устанавливать пакеты Python3 с помощью pip :
Вместо имя_пакета укажите имя любого пакета или библиотеки Python, например, Django для веб-разработки или NumPy для научных вычислений. Например, для установки NumPy введите pip3 install numpy .
Установка дополнительных инструментов
Есть еще несколько пакетов и инструментов для разработки, чтобы обеспечить надежную настройку среды:
sudo apt install -y build-essential libssl-dev libffi-dev python3-dev
Установка venv (Virtual Environment)
Виртуальная среда обеспечивает изолированное пространство для проектов Python на сервере, то есть, все необходимые зависимости — исполняемые файлы, библиотеки и прочие файлы копируются в некоторый выбранный каталог, а приложение использует их, а не установленные в системе. Это позволяет обеспечить стабильность среды разработки и чистоту основной системы.
Мы будем использовать модуль venv , часть стандартной библиотеки Python 3, который можно установить с помощью:
sudo apt install -y python3-venv
Создание виртуальной среды для приложения
Создать новую среду можно с помощью модуля venv . В примере ниже мы назовем новую среду env , вы можете указать любое желаемое название.
mkdir myapp && cd myapp python3 -m venv env
Активация окружения виртуальной среды
Активируйте виртуальную среду с помощью приведенной ниже команды, где env — это имя вашего окружения разработки.
После активации строка приглашения интерпретатора команд будет иметь префикс с именем среды:
Тестирование виртуальной среды
Запустите интерпретатор Python:
(env) netpoint@ubuntu:~/myapp$ python
Помните, что в виртуальной среде Python 3 вместо команды python3 можно использовать python , а вместо pip3 — pip .
Воспользуйтесь функцией print() , чтобы создать стандартную программу «Hello, World»:
Python 3.6.5 (default, Apr 1 2018, 05:46:30 [GCC 7.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> print("Hello, World!") Hello, World! >>> quit()
Деактивация виртуальной среды
Для деактивации среды используйте специальную команду:
(env) netpoint@ubuntu:~/myapp$ deactivate
Использование в приложениях (shebang)
Очень важно в приложениях изменить полный путь #!/usr/bin/python3 на #!/usr/bin/env python . Это позволит выбирать правильный транслятор, независимо от того, выполняется ли скрипт в рамках venv и или в системном окружении. Если вы оставляете путь #!/usr/bin/python3 , всегда будет использоваться системный интерепретатор, чувствительный к изменению среды.
Автоматическая активация виртуальной среды при запуске приложения
Для автоматической активации виртуальной среды при запуске приложения вы можете создать скрипт-обертку, который выполнит необходимые действия.
Подготовим скрипт myapp/run.sh для запуска приложения service.py в рамках виртуального окружения со следующим содержимым:
#!/usr/bin/env bash BASEDIR=$(dirname "$0") echo "Executing App in '$BASEDIR'" PORT=$1 source $BASEDIR/env/bin/activate python $BASEDIR/service.py $PORT
Установим права на исполнение и протестируем его запуск:
chmod +x myapp/run.sh ./myapp/run.sh 8888
Заключение
Изолированная виртуальная среда разработки Python создана, можно приступать к разработке на python.
Installing packages using pip and virtual environments¶
This guide discusses how to install packages using pip and a virtual environment manager: either venv for Python 3 or virtualenv for Python 2. These are the lowest-level tools for managing Python packages and are recommended if higher-level tools do not suit your needs.
This doc uses the term package to refer to a Distribution Package which is different from an Import Package that which is used to import modules in your Python source code.
Installing pip¶
pip is the reference Python package manager. It’s used to install and update packages. You’ll need to make sure you have the latest version of pip installed.
Debian and most other distributions include a python-pip package; if you want to use the Linux distribution-provided versions of pip, see Installing pip/setuptools/wheel with Linux Package Managers .
You can also install pip yourself to ensure you have the latest version. It’s recommended to use the system pip to bootstrap a user installation of pip:
python3 -m pip install --user --upgrade pip python3 -m pip --version
Afterwards, you should have the latest version of pip installed in your user site:
pip 21.1.3 from $HOME/.local/lib/python3.9/site-packages (python 3.9)
The Python installers for Windows include pip. You can make sure that pip is up-to-date by running:
py -m pip install --upgrade pip py -m pip --version
Afterwards, you should have the latest version of pip:
pip 21.1.3 from c:\python39\lib\site-packages (Python 3.9.4)
Installing virtualenv¶
If you are using Python 3.3 or newer, the venv module is the preferred way to create and manage virtual environments. venv is included in the Python standard library and requires no additional installation. If you are using venv, you may skip this section.
virtualenv is used to manage Python packages for different projects. Using virtualenv allows you to avoid installing Python packages globally which could break system tools or other projects. You can install virtualenv using pip.
python3 -m pip install --user virtualenv
py -m pip install --user virtualenv
Creating a virtual environment¶
venv (for Python 3) and virtualenv (for Python 2) allow you to manage separate package installations for different projects. They essentially allow you to create a “virtual” isolated Python installation and install packages into that virtual installation. When you switch projects, you can simply create a new virtual environment and not have to worry about breaking the packages installed in the other environments. It is always recommended to use a virtual environment while developing Python applications.
To create a virtual environment, go to your project’s directory and run venv. If you are using Python 2, replace venv with virtualenv in the below commands.
The second argument is the location to create the virtual environment. Generally, you can just create this in your project and call it env .
venv will create a virtual Python installation in the env folder.
You should exclude your virtual environment directory from your version control system using .gitignore or similar.
Activating a virtual environment¶
Before you can start installing or using packages in your virtual environment you’ll need to activate it. Activating a virtual environment will put the virtual environment-specific python and pip executables into your shell’s PATH .
You can confirm you’re in the virtual environment by checking the location of your Python interpreter:
Виртуальные окружения Python при помощи venv
В норме python умеет работать лишь с одной версией каждой библиотеки и ставит её в папку общую для всех пользователей. Из-за этого возникает три проблемы:
- разным проектам могут потребоваться разные версии библиотек (и далеко не всегда самая новая подходит лучше старых)
- пользователь без прав администратора вообще не может установить библиотеку, потому что у него нет доступа на запись к этой общей папке
- в системе может быть установлено несколько версий интерпретатора, у каждого из которых свой набор библиотек. При установке библиотек и запуске программы довольно легко забыть, какая из версий python используется
Чтобы решить все три проблемы, принято для каждого проекта создавать своё виртуальное окружение. Фактически, это локальная “копия” питона нужной версии, плюс набор всех библиотек (конкретных версий), которые нужны этому проекту. Эта копия “живёт”, как правило, в папке проекта в скрытой подпапке .venv . (В linux папки, с названием, начинающимся с точки, считаются скрытыми).
Создание виртуального окружения
Чтобы создать виртуальное окружение, необходимо запустить модуль venv и указать папку, в которой виртуальное окружение будет храниться ( .venv , как мы уже говорили). В последних версиях питона он встроенный, так что ничего специально устанавливать не требуется.
Для начала нам нужно в командной строке зайти в папку проекта:
cd /path/to/project
Затем запустить модуль venv:
python -m venv .venv
Если у вас есть предпочтения по версии питон, которая необходима, то модуль venv следует запускать при помощи той версии питона, которую мы собираемся использовать в дальнейшем. Например, если у нас есть python 2.7, python 3.6 и python 3.8, и мы планируем использовать версию 3.6, нам следует написать:
/path/to/python3.6 -m venv .venv
Если вам требуются библиотеки, которые устанавливать долго и нудно (например, tensorflow), а в системе они уже стоят, то можно добавить ключ —system-site-packages , тогда ваше окружение будет использоваться как дополнение к системному:
python -m venv .venv —system-site-packages
Активация виртуального окружения
После того как вы создали окружение, его следует активировать:
.venv\Scripts\activate.bat
source .venv/bin/activate
(!) Окружение деактивируется каждый раз, когда терминал (консоль, командная строка) закрывается, так что при включении командной строки надо всякий раз активировать окружение
Если вы зачем-то хотите вручную деактивировать окружение, не закрывая терминал, достаточно вызывать команду deactivate .
Работа в виртуальном окружении
После того, как вы активировали окружение, команды python и pip будут работать с этим окружением.
Устанавливать библиотеки (в активированном окружении) можно одним из этих двух способов:
pip install some-awesome-package
python -m pip install some-awesome-package
Все библиотеки, которые вы установите, будут относиться только к этому проекту и будут подключаться после активации.
Запускать скрипты следует так:
python script.py
Хранение конфигурации
Полезно завести файл requirements.txt (это стандартное имя, вам следует использовать такое же), в котором будут перечислены все установленные библиотеки. Создать этот файл можно командой:
pip freeze > requirements.txt
Помимо названий библиотек эта команда сохраняет также версии пакетов. Благодаря этому любой человек, использующий ваш проект, (или вы сами на другом компьютере) можете одной командой установить все необходимые библиотеки. Притом вы избежите возможных багов, возникающих из-за различий в версиях библиотек на разных компьютерах. Установить библиотеки из файла requirements.txt можно командой:
pip install -r requirements.txt
Использование вместе с системой контроля версий git
Если вы пользуетесь системой контроля версий git (а если нет, то почему?!), вам стоит добавить папку вашего виртуального окружения .venv/ в файл .gitignore — это укажет git-у, что за файлами в этой папке следить не требуется:
Этой папке не место в репозитории: она очень объемная, а её отслеживание не даст вам серьезных преимуществ, но создаст лишние проблемы (виртуальные окружения нельзя просто так перенести с компьютера на компьютер, т.к. они зависят от того, в какой папке установлен питон и какой версии).
Чтобы система контроля версий отслеживала, какие библиотеки требуются вашему проекту, файл requirements.txt стоит добавить под контроль git-а:
git add requirements.txt git commit -m "Store requirements" -- requirements.txt