Не очень понятно, в чем преимущества использования dotenv и создании файла .env в отличие от ранее названного способа config.py? По сути точно такой же файл, который добавляется в gitignore. Только в том, что если переменную на сервере кто-то задал для меня, мне не нужно создавать .env?
Я в видео про это рассказываю. Когда у вас несколько разработчиков + продакшен менеджерить изменения в конфиге становится больно. А если есть CI/CD, то это еще сильнее все усложнит. Если проект разрабатываешь в одиночку - то это просто хорошая привычка )
Не понимаю, а в чем отличие в удобстве использлвания from config.py... от load_dotenv(), который через переменные окружения импортирует из такого же файла .env?
1) Данные из config.py в открытом виде будут видны в байт коде __pycache__/config.interpretator_name.pyc. Который также может улететь в публичный git. 2) Если кто-то решит скомпилировать exe из твоего проекта, захардкоженные пароли нельзя будет изменить без повторной компиляции. 3) Предполагаю, что из скомпилированного файла exe довольно легко достать пароли. В версии 3.10 вроде как поработали над усложнением декомпиляции, но проверять лень, в любом случае лучше следовать общепринятым методикам.
@@Heymdale так данные из .env точно также видны, просто это два разных файла. Почему нельзя оставить данные в config.py, прописать его в .gitignore и пользоваться так. Чем .env лучше?
@@Heymdale я так понимаю, что если запихать config.py в .gitignore и сделать так, чтобы его тоже в екзешнике не было, то работать не будет? Спасибо за объяснение, если это так. А часто питоновский код преобразуют в экзешники? Я думал он в основном на серверах в веб-приложениях работает.
@@maxim1642 Редко, но если программа должна использоваться обычным win пользователем, проще сделать exe релиз, чем писать подробную инструкцию по скачиванию и установке пайтона, потом ещё и отвечать на кучу вопросов, если это не самоцель.
Много раз слышал, что после извлечения переменных из os.environ его хорошо бы очистить. Но при этом присвоение чего то в этот объект сказывается на переменных окружения. Собственно вопрос - этот os.environ это просто копия переменных окружения операционной системы или это штука, которая напрямую способна на них влиять?
os.environ - это копия, она создается при импорте модуля os. Наверное, можно через subprocess их поменять на уровне сессии из которой вызван скрипт, но я не пробовал.
@@Хитрыйпитон спасибо. Я ещё попробовал в терминале поиграть. Получилось, что это наша персональная копия переменных. Мы можем её менять, но на системе это не скажется. Но это может повлиять на дочерний процесс если мы сделаем fork. Судя по комментариям в сети, поменять системные переменные из питоновского скрипта без обращения к самой системе похоже нельзя
все об одном и том-же, где информация как это на деле хранить, где хранить, как доставать. Все показывают одно и тоже, что надо создать файл .env и добавить его в гитигнор. на этом все
просто совет, если хочешь повысить свою продуктивность пора бы изучить слепую печать, поверь сам будешь наслаждаться) мне просто больно смотреть на то как ты все время опускаешь глаза на клавиатуру) ресурсов по изучению этого метода куча главное просто захотеть.
Как же замечателен формат коротких видео!
Полезная информация. Спасибо
Спасибо!
+ Спасибо
Благодарю за видео!
Не очень понятно, в чем преимущества использования dotenv и создании файла .env в отличие от ранее названного способа config.py? По сути точно такой же файл, который добавляется в gitignore. Только в том, что если переменную на сервере кто-то задал для меня, мне не нужно создавать .env?
Как минимум, когда Вы захотите использовать докер и CI/CD практики, то переменные окружения туда легко передаются, а конфиг файлы - нет.
Я в видео про это рассказываю. Когда у вас несколько разработчиков + продакшен менеджерить изменения в конфиге становится больно. А если есть CI/CD, то это еще сильнее все усложнит. Если проект разрабатываешь в одиночку - то это просто хорошая привычка )
Спасибо.
Отлично! Спасибо большое
Спасибо помог!
Не понимаю, а в чем отличие в удобстве использлвания from config.py... от load_dotenv(), который через переменные окружения импортирует из такого же файла .env?
1) Данные из config.py в открытом виде будут видны в байт коде __pycache__/config.interpretator_name.pyc. Который также может улететь в публичный git.
2) Если кто-то решит скомпилировать exe из твоего проекта, захардкоженные пароли нельзя будет изменить без повторной компиляции.
3) Предполагаю, что из скомпилированного файла exe довольно легко достать пароли.
В версии 3.10 вроде как поработали над усложнением декомпиляции, но проверять лень, в любом случае лучше следовать общепринятым методикам.
@@Heymdale так данные из .env точно также видны, просто это два разных файла.
Почему нельзя оставить данные в config.py, прописать его в .gitignore и пользоваться так. Чем .env лучше?
@@maxim1642 в байт коде и экзешнике файла .env нет. Плюсом все ссылаются на удобство в CI/CD, но сам пока углубленно не занимался этим.
@@Heymdale я так понимаю, что если запихать config.py в .gitignore и сделать так, чтобы его тоже в екзешнике не было, то работать не будет? Спасибо за объяснение, если это так.
А часто питоновский код преобразуют в экзешники? Я думал он в основном на серверах в веб-приложениях работает.
@@maxim1642 Редко, но если программа должна использоваться обычным win пользователем, проще сделать exe релиз, чем писать подробную инструкцию по скачиванию и установке пайтона, потом ещё и отвечать на кучу вопросов, если это не самоцель.
Много раз слышал, что после извлечения переменных из os.environ его хорошо бы очистить. Но при этом присвоение чего то в этот объект сказывается на переменных окружения. Собственно вопрос - этот os.environ это просто копия переменных окружения операционной системы или это штука, которая напрямую способна на них влиять?
os.environ - это копия, она создается при импорте модуля os. Наверное, можно через subprocess их поменять на уровне сессии из которой вызван скрипт, но я не пробовал.
@@Хитрыйпитон спасибо. Я ещё попробовал в терминале поиграть. Получилось, что это наша персональная копия переменных. Мы можем её менять, но на системе это не скажется. Но это может повлиять на дочерний процесс если мы сделаем fork. Судя по комментариям в сети, поменять системные переменные из питоновского скрипта без обращения к самой системе похоже нельзя
Если в этом же скрипте есть обращение к этим переменным, то это будет работать. Как пример - я устанавливаю использование конкретной GPU для работы.
Хороший туториал, спасибо!
Offtop - Как Вам использование Kite для автозаполнения? 🤔
Использую его, удобная штука
у вас не было проблем с установкой psycopg2 на bigsur pipenv?
Я пока не обновился, но для девелоперской машинки можно psycopg2-binary поставить
@@Хитрыйпитон ну так и сделал, думал м.б. вы как то обошли такое
Также удобно использовать библу *keyring*
+1
Всё понятно. Только один вопрос, почему в твоих видео везде есть Гвидо? Кто это?
Создатель питона
все об одном и том-же, где информация как это на деле хранить, где хранить, как доставать. Все показывают одно и тоже, что надо создать файл .env и добавить его в гитигнор. на этом все
просто совет, если хочешь повысить свою продуктивность пора бы изучить слепую печать, поверь сам будешь наслаждаться) мне просто больно смотреть на то как ты все время опускаешь глаза на клавиатуру) ресурсов по изучению этого метода куча главное просто захотеть.
не питон а пайтон (правильно читается) нет проблем я люблю твои видео!
@@user-pn2xt3jw1i причем тут французский? :)
Python - английское слово, имеющее конкретное произношение. Ты же говоришь Пэрис, а не Париж :)
не существует "правильного" чтения
Спасибо большое