Skip to content

Latest commit

 

History

History
132 lines (95 loc) · 4.87 KB

File metadata and controls

132 lines (95 loc) · 4.87 KB

Виртуальное окружение venv


Почитать подробно тут.

Есть 2 способа работать с интерпретатором питона, можно запускать программу с использованием python из самой ОС в Linux, который находится по пути /usr/bin/python

Второй способ заключается в создании локального python интерпретатора, прямо внутри самого проекта, скачивание и установка модулей прямо в этот проект.

Установка в Ubuntu

pip3 install --user virtualenv virtualenvwrapper

Установка python3.8 для создания вирт-окружение

sudo apt install python3.8-venv

В самом созданном проекте создаем вирт-окружение с версией 3.8

python3.8 -m venv venv

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

source venv/bin/activate

После этого в терминале будет дописано (venv) что означает что мы находимся в виртуальном окружении, и теперь все устанавливаемые библиотеки, пакеты, модули будут устанавливаться в директорию venv

После активации можно посмотреть версию интерпретатора python что будет использована:

python --version

# Вывод
Python 3.8.0

Деактивация окружения:

deactivate

Установка зависимостей

Когда мы находимся в вирт.окруж venv командой pip freeze можно вывести список всех установленных пакетов.

pip3 freeze

    absl-py==0.13.0
    asgiref==3.4.1
    astunparse==1.6.3
    cachetools==4.2.2
    certifi==2021.5.30

Следующим способом мы экспортируем этот список в файл Requirements.txt

pip3 freeze > Requirements.txt

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

pip3 install -r Requirements.txt

Так можно быстро устанавливать все зависимые библиотеки.


Переменные окружения

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

Хорошей практикой принято считать создание в корне проекта файла .env.template который будет служить шаблоном переменных окружения для заполнения, в нем не будет данных, только указание названия какие переменные будут использоваться.

Содержимое файла .env.template

# int
VAR1=
# str
VAR2=
# str, separate with ,
VAR3=
# bool
VAR4=

На основе шаблона будем заполнять наш боевой файл с переменными окружения.env

VAR1=55
VAR2=hello world
VAR3=A,B,C,D
VAR4=True

Для получения переменных окружения в python есть специальный модуль

pip install python-dotenv==0.21.0

С его помощью можно получать переменные окружения, по дофолту он настроен на извлечения переменных из файла .env в текущей директории, хорошей практикой считается расположение файла settings.py который и будет извлекать все данные из переменных окружения, и импортируя который можно получать доступ ко всем настройкам.

from os import environ
from dotenv import load_dotenv

load_dotenv()

"""int"""
VAR1 = int(environ.get("VAR1", 55))
"""str"""
VAR2 = str(environ.get("VAR2", ''))
"""list"""
VAR3 = str(environ.get("VAR3", 'A,B,C')).split(',')
"""bool"""
VAR4 = bool(environ.get("VAR4", True))