Переменные окружения¶
Tip
Если вы уже знаете, что такое «переменные окружения» и как их использовать, можете пропустить это.
Переменная окружения (также известная как «env var») - это переменная, которая живет вне кода Python, в операционной системе, и может быть прочитана вашим кодом Python (или другими программами).
Переменные окружения могут быть полезны для работы с настройками приложений, как часть установки Python и т.д.
Создание и использование переменных окружения¶
Можно создавать и использовать переменные окружения в оболочке (терминале), не прибегая к помощи Python:
Чтение переменных окружения в python¶
Так же существует возможность создания переменных окружения вне Python, в терминале (или любым другим способом), а затем чтения их в Python.
Например, у вас есть файл main.py
:
import os
name = os.getenv("MY_NAME", "World")
print(f"Hello {name} from Python")
Tip
Второй аргумент os.getenv()
- это возвращаемое по умолчанию значение.
Если значение не указано, то по умолчанию оно равно None
. В данном случае мы указываем «World»
в качестве значения по умолчанию.
Затем можно запустить эту программу на Python:
Поскольку переменные окружения могут быть установлены вне кода, но могут быть прочитаны кодом, и их не нужно хранить (фиксировать в git
) вместе с остальными файлами, их принято использовать для конфигураций или настроек.
Вы также можете создать переменную окружения только для конкретного вызова программы, которая будет доступна только для этой программы и только на время ее выполнения.
Для этого создайте её непосредственно перед самой программой, в той же строке:
Tip
Подробнее об этом можно прочитать на сайте The Twelve-Factor App: Config.
Типизация и Валидация¶
Эти переменные окружения могут работать только с текстовыми строками, поскольку они являются внешними по отношению к Python и должны быть совместимы с другими программами и остальной системой (и даже с различными операционными системами, такими как Linux, Windows, macOS).
Это означает, что любое значение, считанное в Python из переменной окружения, будет str
, и любое преобразование к другому типу или любая проверка должны быть выполнены в коде.
Подробнее об использовании переменных окружения для работы с настройками приложения вы узнаете в Расширенное руководство пользователя - Настройки и переменные среды.
Переменная окружения PATH
¶
Существует специальная переменная окружения PATH
, которая используется операционными системами (Linux, macOS, Windows) для поиска программ для запуска.
Значение переменной PATH
- это длинная строка, состоящая из каталогов, разделенных двоеточием :
в Linux и macOS, и точкой с запятой ;
в Windows.
Например, переменная окружения PATH
может выглядеть следующим образом:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
Это означает, что система должна искать программы в каталогах:
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
C:\Program Files\Python312\Scripts;C:\Program Files\Python312;C:\Windows\System32
Это означает, что система должна искать программы в каталогах:
C:\Program Files\Python312\Scripts
C:\Program Files\Python312
C:\Windows\System32
Когда вы вводите команду в терминале, операционная система ищет программу в каждой из тех директорий, которые перечислены в переменной окружения PATH
.
Например, когда вы вводите python
в терминале, операционная система ищет программу под названием python
в первой директории в этом списке.
Если она ее находит, то использует ее. В противном случае она продолжает искать в других каталогах.
Установка Python и обновление PATH
¶
При установке Python вас могут спросить, нужно ли обновить переменную окружения PATH
.
Допустим, вы устанавливаете Python, и он оказывается в каталоге /opt/custompython/bin
.
Если вы скажете «да», чтобы обновить переменную окружения PATH
, то программа установки добавит /opt/custompython/bin
в переменную окружения PATH
.
Это может выглядеть следующим образом:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/custompython/bin
Таким образом, когда вы набираете python
в терминале, система найдет программу Python в /opt/custompython/bin
(последний каталог) и использует ее.
Допустим, вы устанавливаете Python, и он оказывается в каталоге C:\opt\custompython\bin
.
Если вы согласитесь обновить переменную окружения PATH
, то программа установки добавит C:\opt\custompython\bin
в переменную окружения PATH
.
C:\Program Files\Python312\Scripts;C:\Program Files\Python312;C:\Windows\System32;C:\opt\custompython\bin
Таким образом, когда вы набираете python
в терминале, система найдет программу Python в C:\opt\custompython\bin
(последний каталог) и использует ее.
Итак, если вы напечатаете:
Система найдет программу python
в /opt/custompython/bin
и запустит ее.
Это примерно эквивалентно набору текста:
Система найдет программу python
в каталоге C:\opt\custompython\bin\python
и запустит ее.
Это примерно эквивалентно набору текста:
Эта информация будет полезна при изучении Виртуальных окружений.
Вывод¶
Благодаря этому вы должны иметь базовое представление о том, что такое переменные окружения и как использовать их в Python.
Подробнее о них вы также можете прочитать в статье о переменных окружения на википедии.
Во многих случаях не всегда очевидно, как переменные окружения могут быть полезны и применимы. Но они постоянно появляются в различных сценариях разработки, поэтому знать о них полезно.
Например, эта информация понадобится вам в следующем разделе, посвященном Виртуальным окружениям.