Як встановити змінні середовища в PyCharm?


85

Я почав працювати в проекті Django, і я хотів би встановити деякі змінні середовища без необхідності встановлювати їх вручну або мати файл bash для джерела.

Я хотів би встановити такі змінні:

export DATABASE_URL=postgres://127.0.0.1:5432/my_db_name
export DEBUG=1
# there are other variables, but they contain personal information

Я прочитав це , але це не вирішує того, що я хочу. Крім того, я спробував встановити змінні середовища в Налаштуваннях -> Збірка, Виконання, Розгортання -> Консоль -> Консоль Python / Django Console , але це встановлює змінні для інтерпретатора.


Встановлення змінних у pycharm має один недолік, тобто ви втрачаєте їх, якщо видаляєте профіль. Альтернативою є просто встановити значення за замовчуванням, наприклад, такий імпорт os os.getenv (key = 'DATABASE_URL', default = 'postgres: //127.0.0.1: 5432 / my_db_name')
YH Ву

Думаю, якщо ви застосуєте підхід, згаданий у моїй відповіді, ви не втратите змінних середовища, оскільки вони будуть у файлі, який ви використовуєте. Ця відповідь не стосується питання, оскільки посилається на те, як встановити їх у PyCharm, не якщо вони програють чи ні.
lmiguelvargasf

2
Я також не вважаю хорошою ідеєю жорстко кодувати значення безпосередньо в коді. Це дуже погана практика.
lmiguelvargasf

Відповіді:


139

Ви можете встановити змінні середовища в меню конфігурацій запуску Pycharm.

  1. Відкрийте селектор запуску конфігурації у верхньому правому куті та натисніть кнопку Edit Configurations...

    Редагувати конфігурації ...

  2. Знайдіть Environmental variablesі клацніть...

    Змінні середовища

  3. Додайте або змініть змінні, а потім натисніть OK

    Редагування змінних середовища

Ви можете отримати доступ до змінних середовища за допомогоюos.environ

import os
print(os.environ['SOME_VAR'])

1
о, я просто намагався набрати на цьому рядку, потрійна крапка виглядала сірою, тому я навіть не думав натискати на неї.
alexey

4
Я спробував цей метод, але PyCharm не вибирає певний env var (я спеціально намагався встановити DATABASE_URL). Схоже на помилку PyCharm.
LNI

2
@LNI в PyCharm є два місця, де ми можемо встановити змінні env. Один призначений для запущеного середовища (і він встановлює, як показував Джоран), а також ми можемо встановити змінні, які будуть доступні для консолі в Pycharm (і тут встановлюються Налаштування -> Збірка, Виконання, Розгортання -> Консоль -> Консоль Python)
Роман Казаков

Так, це здається мені правильною відповіддю. Я хотів би додати, що якщо ви встановите змінну середовища в налаштуваннях за замовчуванням / Python, вона буде використовуватися кожного разу, коли ви клацаєте правою кнопкою миші на сценарії та запускаєте його
Кріс Сьюелл

1
Це спрацювало для мене. Потрібно було перезапустити перекладача.
Космонавт

90

Я зміг це зрозуміти за допомогою плагіна PyCharm під назвою EnvFile . Цей плагін, в основному, дозволяє встановлювати змінні середовища для запуску конфігурацій з одного або декількох файлів.

Встановлення досить просте:

Налаштування > Плагіни > Переглянути сховища ... > Шукати "Env-файл" > Встановити плагін .

Потім я створив у кореневій частині проекту файл, environment.envякий називається та містить:

DATABASE_URL=postgres://127.0.0.1:5432/my_db_name
DEBUG=1

Потім я перейшов до Виконати -> Редагувати конфігурації , і я виконав кроки на наступному зображенні:

Встановити змінні середовища

У 3 я вибрав файл environment.env, а потім міг просто натиснути кнопку відтворення в PyCharm, і все працювало як шарм.


7
@lmiguelvargasf Я не можу вам подякувати за цю відповідь. Схоже, Pycharm не може отримати джерела env vars у .bashrc (я на Linux). Цей плагін заощадив мені багато часу, оскільки я можу використовувати файл postctivate як джерело.
jacekbj

1
@lmiguelvargasf так, вибачте. Я маю на увазі 2017.2.4
Даніїл Машкін

2
Працюючи тут 2017 року. Дякую!
losik123

Робота в 2017.2
Іонафан

2
@krinker, коли ви переглядаєте файл, натисніть, cmd+ shift+, .щоб показати приховані файли.
lmiguelvargasf

11

Ця функціональність була додана до IDE зараз (працює Pycharm 2018.3)

Просто натисніть EnvFileвкладку в конфігурації запуску, клацніть Enable EnvFileі клацніть піктограму +, щоб додати файл env

Приклад із славною темою матеріалу

Оновлення: По суті те саме, що відповідь @imguelvargasf, але плагін для мене був увімкнений за замовчуванням.


2
Я pycharm 2019, і я не бачу вкладку EnvFile. Це доступно в конфігурації Python (ваш знімок екрана - DjangoServer)?
alltej

1

Жоден із перерахованих вище методів для мене не спрацював. Якщо у вас Windows, спробуйте це на терміналі PyCharm:

setx YOUR_VAR "VALUE"

Ви можете отримати доступ до нього у своїх сценаріях за допомогою os.environ['YOUR_VAR'].


0

Це те, що ви можете зробити для отримання файлу .env (і .flaskenv) у консолі pycharm flask / django . Звичайно, це також працює для звичайної консолі python.

  1. Робіть pip install python-dotenvу своєму оточенні (те саме, на що вказує pycharm).

  2. Перейдіть до: Налаштування> Збірка, виконання, розгортання> Консоль> Консоль Flask / django

  3. У "початковий скрипт" включіть щось на кшталт цього вгорі:

    from dotenv import load_dotenv load_dotenv(verbose=True)

Файл .env може виглядати так: export KEY=VALUE

Неважливо, чи включає хтось exportчи ні, щоб дотенв його прочитав.

Як альтернативу ви також можете отримати файл .env у скрипті активації оболонки для відповідного віртуального оточення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.