Перейти до змісту

Змінні оточення

🌐 Переклад ШІ та людьми

Цей переклад виконано ШІ під керівництвом людей. 🤝

Можливі помилки через неправильне розуміння початкового змісту або неприродні формулювання тощо. 🤖

Ви можете покращити цей переклад, допомігши нам краще спрямовувати AI LLM.

Англійська версія

Порада

Якщо ви вже знаєте, що таке «змінні оточення» і як їх використовувати, можете пропустити цей розділ.

Змінна оточення (також відома як «env var») - це змінна, що існує поза кодом Python, в операційній системі, і може бути прочитана вашим кодом Python (а також іншими програмами).

Змінні оточення корисні для роботи з налаштуваннями застосунку, як частина встановлення Python тощо.

Створення і використання змінних оточення

Ви можете створювати і використовувати змінні оточення в оболонці (терміналі) без участі Python:

// Ви можете створити змінну оточення MY_NAME командою
$ export MY_NAME="Wade Wilson"

// Потім можна використати її з іншими програмами, наприклад
$ echo "Hello $MY_NAME"

Hello Wade Wilson
// Створіть змінну оточення MY_NAME
$ $Env:MY_NAME = "Wade Wilson"

// Використайте її з іншими програмами, наприклад
$ echo "Hello $Env:MY_NAME"

Hello Wade Wilson

Читання змінних оточення в Python

Ви також можете створити змінні оточення поза Python, у терміналі (або будь-яким іншим способом), а потім зчитати їх у Python.

Наприклад, у вас може бути файл main.py з:

import os

name = os.getenv("MY_NAME", "World")
print(f"Hello {name} from Python")

Порада

Другий аргумент до os.getenv() - це значення за замовчуванням, яке буде повернено.

Якщо його не вказано, за замовчуванням це None. Тут ми надаємо "World" як значення за замовчуванням.

Потім ви можете запустити цю програму Python:

// Тут ми ще не встановлюємо змінну оточення
$ python main.py

// Оскільки ми не встановили змінну оточення, отримуємо значення за замовчуванням

Hello World from Python

// Але якщо спочатку створимо змінну оточення
$ export MY_NAME="Wade Wilson"

// А потім знову викличемо програму
$ python main.py

// Тепер вона може прочитати змінну оточення

Hello Wade Wilson from Python
// Тут ми ще не встановлюємо змінну оточення
$ python main.py

// Оскільки ми не встановили змінну оточення, отримуємо значення за замовчуванням

Hello World from Python

// Але якщо спочатку створимо змінну оточення
$ $Env:MY_NAME = "Wade Wilson"

// А потім знову викличемо програму
$ python main.py

// Тепер вона може прочитати змінну оточення

Hello Wade Wilson from Python

Оскільки змінні оточення можна встановлювати поза кодом, але читати в коді, і їх не потрібно зберігати (фіксувати у git) разом з іншими файлами, їх часто використовують для конфігурацій або налаштувань.

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

Щоб зробити це, створіть її безпосередньо перед командою запуску програми, в тому самому рядку:

// Створіть змінну оточення MY_NAME безпосередньо в цьому виклику програми
$ MY_NAME="Wade Wilson" python main.py

// Тепер вона може прочитати змінну оточення

Hello Wade Wilson from Python

// Після цього змінна оточення більше не існує
$ python main.py

Hello World from Python

Порада

Докладніше про це можна прочитати у 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

Система знайде програму python у /opt/custompython/bin і запустить її.

Це приблизно еквівалентно введенню:

$ /opt/custompython/bin/python

Система знайде програму python у C:\opt\custompython\bin\python і запустить її.

Це приблизно еквівалентно введенню:

$ C:\opt\custompython\bin\python

Ця інформація стане у пригоді під час вивчення Віртуальних середовищ.

Висновок

Тепер ви маєте базове розуміння того, що таке змінні оточення і як їх використовувати в Python.

Також можна прочитати більше у Вікіпедії про змінну оточення.

У багатьох випадках не одразу очевидно, як змінні оточення будуть корисними та застосовними. Але вони постійно з’являються в різних сценаріях під час розробки, тож варто про них знати.

Наприклад, вам знадобиться ця інформація в наступному розділі про Віртуальні середовища.