Используем переменные окружения в python

  Рет қаралды 11,061

Хитрый питон

Хитрый питон

3 жыл бұрын

Часто, при написании программы нам нужно передать в нее какие-то секретные данные - пароль к базе данных, ключи к облачным сервисам и т.д. Указание этих данных в коде может воздать много проблем. В этом видео я покажу, как использовать переменные окружения для конфигурирования своих приложений.
Я в Telegram - t.me/tricky_python
Канал создан при поддержке сообщества Moscow Python.
Наш KZbin-канал - / @moscowdjangoru
Курсы Learn Python - learn.python.ru/

Пікірлер: 36
@petyap7600
@petyap7600 3 жыл бұрын
Как же замечателен формат коротких видео!
@kutyurin
@kutyurin 3 жыл бұрын
Полезная информация. Спасибо
@user-et4wn4kb8g
@user-et4wn4kb8g 2 жыл бұрын
Отлично! Спасибо большое
@GnuriaN
@GnuriaN 3 жыл бұрын
Спасибо!
@YuriyBaragin
@YuriyBaragin Жыл бұрын
Благодарю за видео!
@siriusdiamond
@siriusdiamond 3 жыл бұрын
+ Спасибо
@Golf-streamer
@Golf-streamer 3 жыл бұрын
Не очень понятно, в чем преимущества использования dotenv и создании файла .env в отличие от ранее названного способа config.py? По сути точно такой же файл, который добавляется в gitignore. Только в том, что если переменную на сервере кто-то задал для меня, мне не нужно создавать .env?
@andreyanokhin7235
@andreyanokhin7235 3 жыл бұрын
Как минимум, когда Вы захотите использовать докер и CI/CD практики, то переменные окружения туда легко передаются, а конфиг файлы - нет.
@user-th6xg5bk4c
@user-th6xg5bk4c 3 жыл бұрын
Я в видео про это рассказываю. Когда у вас несколько разработчиков + продакшен менеджерить изменения в конфиге становится больно. А если есть CI/CD, то это еще сильнее все усложнит. Если проект разрабатываешь в одиночку - то это просто хорошая привычка )
@sainco3036
@sainco3036 3 жыл бұрын
Спасибо.
@xlebylllek321
@xlebylllek321 3 жыл бұрын
Спасибо большое
@user-vh4bi5zr3r
@user-vh4bi5zr3r 2 жыл бұрын
Спасибо помог!
@snoop9860
@snoop9860 3 жыл бұрын
+1
@antonnekrasov4639
@antonnekrasov4639 3 жыл бұрын
Хороший туториал, спасибо! Offtop - Как Вам использование Kite для автозаполнения? 🤔
@user-th6xg5bk4c
@user-th6xg5bk4c 3 жыл бұрын
Использую его, удобная штука
@APfOHx5Q
@APfOHx5Q Жыл бұрын
Также удобно использовать библу *keyring*
@user-dy4nj1cd2d
@user-dy4nj1cd2d 3 жыл бұрын
Много раз слышал, что после извлечения переменных из os.environ его хорошо бы очистить. Но при этом присвоение чего то в этот объект сказывается на переменных окружения. Собственно вопрос - этот os.environ это просто копия переменных окружения операционной системы или это штука, которая напрямую способна на них влиять?
@user-th6xg5bk4c
@user-th6xg5bk4c 3 жыл бұрын
os.environ - это копия, она создается при импорте модуля os. Наверное, можно через subprocess их поменять на уровне сессии из которой вызван скрипт, но я не пробовал.
@user-dy4nj1cd2d
@user-dy4nj1cd2d 3 жыл бұрын
@@user-th6xg5bk4c спасибо. Я ещё попробовал в терминале поиграть. Получилось, что это наша персональная копия переменных. Мы можем её менять, но на системе это не скажется. Но это может повлиять на дочерний процесс если мы сделаем fork. Судя по комментариям в сети, поменять системные переменные из питоновского скрипта без обращения к самой системе похоже нельзя
@antonnekrasov4639
@antonnekrasov4639 3 жыл бұрын
Если в этом же скрипте есть обращение к этим переменным, то это будет работать. Как пример - я устанавливаю использование конкретной GPU для работы.
@user-ux4le1tf3y
@user-ux4le1tf3y 3 жыл бұрын
у вас не было проблем с установкой psycopg2 на bigsur pipenv?
@user-th6xg5bk4c
@user-th6xg5bk4c 3 жыл бұрын
Я пока не обновился, но для девелоперской машинки можно psycopg2-binary поставить
@user-ux4le1tf3y
@user-ux4le1tf3y 3 жыл бұрын
@@user-th6xg5bk4c ну так и сделал, думал м.б. вы как то обошли такое
@ilia_meysak
@ilia_meysak Жыл бұрын
Всё понятно. Только один вопрос, почему в твоих видео везде есть Гвидо? Кто это?
@vovkka
@vovkka Жыл бұрын
Создатель питона
@MyFearIsMyBlue
@MyFearIsMyBlue Жыл бұрын
Не понимаю, а в чем отличие в удобстве использлвания from config.py... от load_dotenv(), который через переменные окружения импортирует из такого же файла .env?
@Heymdale
@Heymdale Жыл бұрын
1) Данные из config.py в открытом виде будут видны в байт коде __pycache__/config.interpretator_name.pyc. Который также может улететь в публичный git. 2) Если кто-то решит скомпилировать exe из твоего проекта, захардкоженные пароли нельзя будет изменить без повторной компиляции. 3) Предполагаю, что из скомпилированного файла exe довольно легко достать пароли. В версии 3.10 вроде как поработали над усложнением декомпиляции, но проверять лень, в любом случае лучше следовать общепринятым методикам.
@maxim1642
@maxim1642 Жыл бұрын
@@Heymdale так данные из .env точно также видны, просто это два разных файла. Почему нельзя оставить данные в config.py, прописать его в .gitignore и пользоваться так. Чем .env лучше?
@Heymdale
@Heymdale Жыл бұрын
@@maxim1642 в байт коде и экзешнике файла .env нет. Плюсом все ссылаются на удобство в CI/CD, но сам пока углубленно не занимался этим.
@maxim1642
@maxim1642 Жыл бұрын
@@Heymdale я так понимаю, что если запихать config.py в .gitignore и сделать так, чтобы его тоже в екзешнике не было, то работать не будет? Спасибо за объяснение, если это так. А часто питоновский код преобразуют в экзешники? Я думал он в основном на серверах в веб-приложениях работает.
@Heymdale
@Heymdale Жыл бұрын
@@maxim1642 Редко, но если программа должна использоваться обычным win пользователем, проще сделать exe релиз, чем писать подробную инструкцию по скачиванию и установке пайтона, потом ещё и отвечать на кучу вопросов, если это не самоцель.
@theglitch2513
@theglitch2513 2 жыл бұрын
не питон а пайтон (правильно читается) нет проблем я люблю твои видео!
@maxbarrett4737
@maxbarrett4737 Жыл бұрын
@@user-pn2xt3jw1i причем тут французский? :) Python - английское слово, имеющее конкретное произношение. Ты же говоришь Пэрис, а не Париж :)
@vovkka
@vovkka Жыл бұрын
не существует "правильного" чтения
@g0tem449
@g0tem449 11 ай бұрын
все об одном и том-же, где информация как это на деле хранить, где хранить, как доставать. Все показывают одно и тоже, что надо создать файл .env и добавить его в гитигнор. на этом все
@las_9011
@las_9011 3 жыл бұрын
просто совет, если хочешь повысить свою продуктивность пора бы изучить слепую печать, поверь сам будешь наслаждаться) мне просто больно смотреть на то как ты все время опускаешь глаза на клавиатуру) ресурсов по изучению этого метода куча главное просто захотеть.
Как передать аргументы в декоратор?
7:30
Хитрый питон
Рет қаралды 4,2 М.
Как устроены декораторы в python?
12:18
Хитрый питон
Рет қаралды 14 М.
Шокирующая Речь Выпускника 😳📽️@CarrolltonTexas
00:43
Глеб Рандалайнен
Рет қаралды 11 МЛН
Be kind🤝
00:22
ISSEI / いっせい
Рет қаралды 22 МЛН
Как устроено виртуальное окружение в python?
8:08
Pytest #7: Подмена переменных окружения с pytest-dotenv
9:21
Как устроены итераторы в Python?
11:13
Хитрый питон
Рет қаралды 14 М.
Как использовать *args и **kwargs в python?
11:22
Хитрый питон
Рет қаралды 6 М.
How To Learn Algorithms? Why? #codonaft
19:22
codonaft
Рет қаралды 559 М.
Как в 44 года стать программистом на Python. Объясняю с чего начать.
19:32
Управление памятью в python
10:20
Хитрый питон
Рет қаралды 18 М.
Как НЕ записывать пароли в базе данных
23:06