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

Поділитися
Вставка
  • Опубліковано 29 січ 2025

КОМЕНТАРІ • 36

  • @petyap7600
    @petyap7600 3 роки тому +10

    Как же замечателен формат коротких видео!

  • @kutyurin
    @kutyurin 3 роки тому +4

    Полезная информация. Спасибо

  • @GnuriaN
    @GnuriaN 3 роки тому +3

    Спасибо!

  • @siriusdiamond
    @siriusdiamond 3 роки тому +3

    + Спасибо

  • @YuriyBaragin
    @YuriyBaragin Рік тому

    Благодарю за видео!

  • @Golf-streamer
    @Golf-streamer 3 роки тому +10

    Не очень понятно, в чем преимущества использования dotenv и создании файла .env в отличие от ранее названного способа config.py? По сути точно такой же файл, который добавляется в gitignore. Только в том, что если переменную на сервере кто-то задал для меня, мне не нужно создавать .env?

    • @andreyanokhin7235
      @andreyanokhin7235 3 роки тому +1

      Как минимум, когда Вы захотите использовать докер и CI/CD практики, то переменные окружения туда легко передаются, а конфиг файлы - нет.

    • @Хитрыйпитон
      @Хитрыйпитон  3 роки тому +3

      Я в видео про это рассказываю. Когда у вас несколько разработчиков + продакшен менеджерить изменения в конфиге становится больно. А если есть CI/CD, то это еще сильнее все усложнит. Если проект разрабатываешь в одиночку - то это просто хорошая привычка )

  • @sainco3036
    @sainco3036 3 роки тому +2

    Спасибо.

  • @АндрейСойко-р6п
    @АндрейСойко-р6п 2 роки тому

    Отлично! Спасибо большое

  • @rubemine_creator
    @rubemine_creator 3 роки тому

    Спасибо помог!

  • @MyFearIsMyBlue
    @MyFearIsMyBlue 2 роки тому

    Не понимаю, а в чем отличие в удобстве использлвания from config.py... от load_dotenv(), который через переменные окружения импортирует из такого же файла .env?

    • @Heymdale
      @Heymdale 2 роки тому +1

      1) Данные из config.py в открытом виде будут видны в байт коде __pycache__/config.interpretator_name.pyc. Который также может улететь в публичный git.
      2) Если кто-то решит скомпилировать exe из твоего проекта, захардкоженные пароли нельзя будет изменить без повторной компиляции.
      3) Предполагаю, что из скомпилированного файла exe довольно легко достать пароли.
      В версии 3.10 вроде как поработали над усложнением декомпиляции, но проверять лень, в любом случае лучше следовать общепринятым методикам.

    • @maxim1642
      @maxim1642 2 роки тому

      @@Heymdale так данные из .env точно также видны, просто это два разных файла.
      Почему нельзя оставить данные в config.py, прописать его в .gitignore и пользоваться так. Чем .env лучше?

    • @Heymdale
      @Heymdale 2 роки тому

      @@maxim1642 в байт коде и экзешнике файла .env нет. Плюсом все ссылаются на удобство в CI/CD, но сам пока углубленно не занимался этим.

    • @maxim1642
      @maxim1642 2 роки тому

      @@Heymdale я так понимаю, что если запихать config.py в .gitignore и сделать так, чтобы его тоже в екзешнике не было, то работать не будет? Спасибо за объяснение, если это так.
      А часто питоновский код преобразуют в экзешники? Я думал он в основном на серверах в веб-приложениях работает.

    • @Heymdale
      @Heymdale 2 роки тому

      @@maxim1642 Редко, но если программа должна использоваться обычным win пользователем, проще сделать exe релиз, чем писать подробную инструкцию по скачиванию и установке пайтона, потом ещё и отвечать на кучу вопросов, если это не самоцель.

  • @Игорь-ч6ф3и
    @Игорь-ч6ф3и 3 роки тому +1

    Много раз слышал, что после извлечения переменных из os.environ его хорошо бы очистить. Но при этом присвоение чего то в этот объект сказывается на переменных окружения. Собственно вопрос - этот os.environ это просто копия переменных окружения операционной системы или это штука, которая напрямую способна на них влиять?

    • @Хитрыйпитон
      @Хитрыйпитон  3 роки тому

      os.environ - это копия, она создается при импорте модуля os. Наверное, можно через subprocess их поменять на уровне сессии из которой вызван скрипт, но я не пробовал.

    • @Игорь-ч6ф3и
      @Игорь-ч6ф3и 3 роки тому +2

      @@Хитрыйпитон спасибо. Я ещё попробовал в терминале поиграть. Получилось, что это наша персональная копия переменных. Мы можем её менять, но на системе это не скажется. Но это может повлиять на дочерний процесс если мы сделаем fork. Судя по комментариям в сети, поменять системные переменные из питоновского скрипта без обращения к самой системе похоже нельзя

    • @antonnekrasov4639
      @antonnekrasov4639 3 роки тому

      Если в этом же скрипте есть обращение к этим переменным, то это будет работать. Как пример - я устанавливаю использование конкретной GPU для работы.

  • @antonnekrasov4639
    @antonnekrasov4639 3 роки тому

    Хороший туториал, спасибо!
    Offtop - Как Вам использование Kite для автозаполнения? 🤔

  • @vendjin
    @vendjin 3 роки тому

    у вас не было проблем с установкой psycopg2 на bigsur pipenv?

    • @Хитрыйпитон
      @Хитрыйпитон  3 роки тому

      Я пока не обновился, но для девелоперской машинки можно psycopg2-binary поставить

    • @vendjin
      @vendjin 3 роки тому

      @@Хитрыйпитон ну так и сделал, думал м.б. вы как то обошли такое

  • @APfOHx5Q
    @APfOHx5Q Рік тому

    Также удобно использовать библу *keyring*

  • @sudosnoop
    @sudosnoop 3 роки тому +3

    +1

  • @ilia_meysak
    @ilia_meysak 2 роки тому

    Всё понятно. Только один вопрос, почему в твоих видео везде есть Гвидо? Кто это?

    • @vovkka
      @vovkka Рік тому +2

      Создатель питона

  • @g0tem449
    @g0tem449 Рік тому

    все об одном и том-же, где информация как это на деле хранить, где хранить, как доставать. Все показывают одно и тоже, что надо создать файл .env и добавить его в гитигнор. на этом все

  • @las_9011
    @las_9011 3 роки тому

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

  • @theglitch2513
    @theglitch2513 3 роки тому

    не питон а пайтон (правильно читается) нет проблем я люблю твои видео!

    • @maxbarrett4737
      @maxbarrett4737 2 роки тому

      @@user-pn2xt3jw1i причем тут французский? :)
      Python - английское слово, имеющее конкретное произношение. Ты же говоришь Пэрис, а не Париж :)

    • @vovkka
      @vovkka Рік тому

      не существует "правильного" чтения

  • @xlebylllek321
    @xlebylllek321 3 роки тому

    Спасибо большое