Forwarded from Zen of Python
В Python слишком много менеджеров пакетов?
В отличие от JavaScript, C#, Dart или Rust, где есть стандартизированные менеджеры пакетов типа npm, NuGet, pub или Cargo, Python стандарты обошли стороной. У него есть целый ворох менеджеров, например, pip, venv, conda и др.
Хорошо это или плохо? Автор этой статьи попробовал разобраться в этом вопрос, попутно разобрав популярные менеджеры для Python:
https://dublog.net/blog/so-many-python-package-managers/
А вы за обилие вариантов или мечтаете о стандартизации?
В отличие от JavaScript, C#, Dart или Rust, где есть стандартизированные менеджеры пакетов типа npm, NuGet, pub или Cargo, Python стандарты обошли стороной. У него есть целый ворох менеджеров, например, pip, venv, conda и др.
Хорошо это или плохо? Автор этой статьи попробовал разобраться в этом вопрос, попутно разобрав популярные менеджеры для Python:
https://dublog.net/blog/so-many-python-package-managers/
А вы за обилие вариантов или мечтаете о стандартизации?
Forwarded from Zen of Python
Как писать чистый код на Python. Советы разработчикам
Написав несколько проектов, вы заметите, что использование паттернов и правил написания кода действительно упрощает разработку и дальнейшую поддержку. А если работаете с кем-то, то без этого вообще никуда.
В этой статье вы узнаете, что такое PEP8, poetry, как создавать архитектуру python-приложения, какие существуют методологии Driven Development и как писать чистый код на Python.
#советы #чистыйкод
Написав несколько проектов, вы заметите, что использование паттернов и правил написания кода действительно упрощает разработку и дальнейшую поддержку. А если работаете с кем-то, то без этого вообще никуда.
В этой статье вы узнаете, что такое PEP8, poetry, как создавать архитектуру python-приложения, какие существуют методологии Driven Development и как писать чистый код на Python.
#советы #чистыйкод
Forwarded from Zen of Python
Асинхронность, многопоточность и многопроцессность в python
Хоть Python пока и не стал по-настоющему многопоточным, как нам обещают в Python 3.13, кое-что он всё же может.
С помощью этого видео вы сможете разобраться в том:
— что такое асинхронное программирование;
— какие есть виды многозадачности при проектировании приложения;
— узнать про процессы, потоки и асинхронный код.
https://youtu.be/_4QY1nGFRY8
#видео #многопоточность
Хоть Python пока и не стал по-настоющему многопоточным, как нам обещают в Python 3.13, кое-что он всё же может.
С помощью этого видео вы сможете разобраться в том:
— что такое асинхронное программирование;
— какие есть виды многозадачности при проектировании приложения;
— узнать про процессы, потоки и асинхронный код.
https://youtu.be/_4QY1nGFRY8
#видео #многопоточность
YouTube
Асинхронность, многопоточность, многопроцессность в python | Библиотека asyncio и асинхронный код
В видео рассмотрим асинхронное программирование, и виды многозадачности при проектировании приложения - процессы, потоки и асинхронный код. Рассмотрим библиотеку asyncio и как на python писать асинхронный код.
Поддержать канал:
https://www.buymeacoffee.…
Поддержать канал:
https://www.buymeacoffee.…
Forwarded from Data Whisperer
Линтеры в Python
В python много линтеров на любой вкус и цвет, выбирай какой нравится и настраивай под себя.
Но наверное самым жестким является wemake-python-styleguide
У них даже на главной странице заявлено
Welcome to the strictest and most opinionated Python linter ever.
Основным кнтрибьютором проекта является Никита Соболев, у которого есть крутой курс Типизация в Python.
Дата Инженеры не так сильно упарываются в линтеры и CI как бэкендеры, но все чаще это присутсвует в новых проектах.
Посмотрим на примере Airflow и TaskFlow API.
Берем код с сайта Astranomer и запускаем линтер с настройками из коробки.
Если не брать во внимание простые ворнинги типа:
- Q000 Double quotes found but single quotes preferred
- W292 no newline at end of file
То стоит посмотреть на следующий ворниг:
- WPS430 Found nested function: extract_bitcoin_price
Получается, нужно переписывать большую часть дага, чтобы линтеры прошли.
Теперь попробуем традиционный синтаксис написания дага (переключаем вкладку на сайте astronomer на Traditional syntax).
И получаем другой интересный ворнинг:
- WPS428 Found statement that has no effect
Всем знакомый синтаксис обьявления зависимомтей в airflow тоже не проходит линтер.
Получается, чтобы линтеры прошли нужно комбинировать оба варианта синтаксиса в Airflow.
Линтеры безусловно нужны, но нужно понимать, что линтер настраиваится под проект, а не наоборот.
Перед внедрением линтеров в свой проект обязательно обсудити с командой, какие проверки вам необходимы, а от каких можно отказаться.
Хороший пример был приведен выше с Airflow, все примеры кода тестировал с оффициального сайта Airflow и Astronomer
В python много линтеров на любой вкус и цвет, выбирай какой нравится и настраивай под себя.
Но наверное самым жестким является wemake-python-styleguide
У них даже на главной странице заявлено
Welcome to the strictest and most opinionated Python linter ever.
Основным кнтрибьютором проекта является Никита Соболев, у которого есть крутой курс Типизация в Python.
Дата Инженеры не так сильно упарываются в линтеры и CI как бэкендеры, но все чаще это присутсвует в новых проектах.
Посмотрим на примере Airflow и TaskFlow API.
Берем код с сайта Astranomer и запускаем линтер с настройками из коробки.
Если не брать во внимание простые ворнинги типа:
- Q000 Double quotes found but single quotes preferred
- W292 no newline at end of file
То стоит посмотреть на следующий ворниг:
- WPS430 Found nested function: extract_bitcoin_price
@dag(schedule="@daily", start_date=datetime(2021, 12, 1), catchup=False)
def taskflow():
@task(task_id="extract", retries=2)
def extract_bitcoin_price() -> Dict[str, float]:
return requests.get(API).json()["bitcoin"]
Получается, нужно переписывать большую часть дага, чтобы линтеры прошли.
Теперь попробуем традиционный синтаксис написания дага (переключаем вкладку на сайте astronomer на Traditional syntax).
И получаем другой интересный ворнинг:
- WPS428 Found statement that has no effect
extract_bitcoin_price >> process_data >> store_data
Всем знакомый синтаксис обьявления зависимомтей в airflow тоже не проходит линтер.
Получается, чтобы линтеры прошли нужно комбинировать оба варианта синтаксиса в Airflow.
Линтеры безусловно нужны, но нужно понимать, что линтер настраиваится под проект, а не наоборот.
Перед внедрением линтеров в свой проект обязательно обсудити с командой, какие проверки вам необходимы, а от каких можно отказаться.
Хороший пример был приведен выше с Airflow, все примеры кода тестировал с оффициального сайта Airflow и Astronomer
tough-dev.school
Типизация в Python
История упаковки Python
• В 2000-х годах Python был популярен, но имел проблемы с упаковкой.
• В 2010-х годах появились инструменты, такие как setuptools и virtualenv, но они не решили всех проблем.
• В 2020-х годах колеса и pyproject.toml стали стандартом для упаковки Python.
Проблемы с упаковкой в 2000-х
• Python был популярен, но имел проблемы с установкой и распространением пакетов.
• Проблемы с упаковкой были связаны с отсутствием единого стандарта и сложностью установки.
Развитие инструментов упаковки
• В 2010-х годах были разработаны инструменты, такие как setuptools и virtualenv, для упрощения установки пакетов.
• Однако эти инструменты не решили всех проблем, и многие разработчики продолжали использовать setup.py.
Переход к pyproject.toml
• В 2016 году был представлен PEP 518, который предлагал единый формат для сборки проектов.
• pyproject.toml стал стандартом для управления проектами и настройки инструментов сборки.
Современное состояние упаковки
• pyproject.toml стал основным инструментом для управления проектами и настройки инструментов сборки.
• Несмотря на то, что pyproject.toml является стандартом, многие разработчики все еще используют setup.py.
Разнообразие и стандартизация
• В Python существует огромное разнообразие инструментов и подходов к упаковке.
• Стандартизация упрощает сотрудничество и устраняет трения, но может привести к более высоким затратам.
Рекомендации по упаковке
• Рекомендуется сосредоточиться на основах и использовать pyproject.toml для настройки линтеров и других инструментов.
• Для создания и распространения собственных пакетов можно использовать setuptools, но это не обязательно.
• Важно практиковать избирательное невежество и не увлекаться новыми экспериментами в области упаковки.
https://300.ya.ru/XOKLQaQ9
#ya300 #300yaru
• В 2000-х годах Python был популярен, но имел проблемы с упаковкой.
• В 2010-х годах появились инструменты, такие как setuptools и virtualenv, но они не решили всех проблем.
• В 2020-х годах колеса и pyproject.toml стали стандартом для упаковки Python.
Проблемы с упаковкой в 2000-х
• Python был популярен, но имел проблемы с установкой и распространением пакетов.
• Проблемы с упаковкой были связаны с отсутствием единого стандарта и сложностью установки.
Развитие инструментов упаковки
• В 2010-х годах были разработаны инструменты, такие как setuptools и virtualenv, для упрощения установки пакетов.
• Однако эти инструменты не решили всех проблем, и многие разработчики продолжали использовать setup.py.
Переход к pyproject.toml
• В 2016 году был представлен PEP 518, который предлагал единый формат для сборки проектов.
• pyproject.toml стал стандартом для управления проектами и настройки инструментов сборки.
Современное состояние упаковки
• pyproject.toml стал основным инструментом для управления проектами и настройки инструментов сборки.
• Несмотря на то, что pyproject.toml является стандартом, многие разработчики все еще используют setup.py.
Разнообразие и стандартизация
• В Python существует огромное разнообразие инструментов и подходов к упаковке.
• Стандартизация упрощает сотрудничество и устраняет трения, но может привести к более высоким затратам.
Рекомендации по упаковке
• Рекомендуется сосредоточиться на основах и использовать pyproject.toml для настройки линтеров и других инструментов.
• Для создания и распространения собственных пакетов можно использовать setuptools, но это не обязательно.
• Важно практиковать избирательное невежество и не увлекаться новыми экспериментами в области упаковки.
https://300.ya.ru/XOKLQaQ9
#ya300 #300yaru
300.ya.ru
Что происходит с setuptools, setup.py, pyproject.toml и wheels? - Пересказ YandexGPT
• Создание пакета: setup.py использовался для создания и установки пакета.
• Установка пакета: pip install запускает setup.py для установки пакета.
• Настройка инструментов для проекта: pyproject.toml используется для хранения метаданных проекта и настройки…
• Установка пакета: pip install запускает setup.py для установки пакета.
• Настройка инструментов для проекта: pyproject.toml используется для хранения метаданных проекта и настройки…
Forwarded from Хитрый Питон
Хорошая статья про то, как устроена в питоне сборка/установка пакетов и почему именно так. Для тех, кому любопытно чуть больше погрузиться в историю - самое то. Выводы у статьи простые - используйте
Ссылка - https://www.bitecode.dev/p/whats-the-deal-with-setuptools-setuppy
pyproject.toml
везде, где это возможно. Я с автором в этом согласен, например у меня на работе как минимум во всех новых проектах pyproject.toml
используется по умолчанию.Ссылка - https://www.bitecode.dev/p/whats-the-deal-with-setuptools-setuppy
www.bitecode.dev
What's the deal with setuptools, setup.py, pyproject.toml and wheels?
Why? Why? Why? Oh, that's why.
Forwarded from Афонасьев Евгений - IT, Python и вот это все
Pycon, к сожалению, закончился. Итоги подведены.
По результатам зрительского голосования мое выступление было признано лучшим на Python треке 🫡 . Огромное спасибо всем, кто оставил обратную связь, проголосовал и поддерживал добрым словом или мудрым советом. 🤝
Для меня персонально площадка pycon russia очень важна ❤️. Именно тут в 2022 году я впервые выступил на большой сцене с полновесным докладом за пределами своей компании (и там же впервые получил приз за лучший доклад 💪). Тем приятнее в этом сезоне было не только выступить как спикер, но и помочь с проведением конференции в качестве члена ПК и ведущего python трека.
Годы идут, но pycon остается для меня очень важным событием, где можно посоперничать с лучшими спикерами python сообщества в России.
Огромное спасибо организаторам, ПК, спикерам и, конечно же, зрителям за такую отличную конференцию! 🔥
До встречи в следующем году 🚀
P.S. Записи появятся примерно через месяц. Обязательно выложу на канале с моим личным топом докладов. 👀
#pycon
По результатам зрительского голосования мое выступление было признано лучшим на Python треке 🫡 . Огромное спасибо всем, кто оставил обратную связь, проголосовал и поддерживал добрым словом или мудрым советом. 🤝
Для меня персонально площадка pycon russia очень важна ❤️. Именно тут в 2022 году я впервые выступил на большой сцене с полновесным докладом за пределами своей компании (и там же впервые получил приз за лучший доклад 💪). Тем приятнее в этом сезоне было не только выступить как спикер, но и помочь с проведением конференции в качестве члена ПК и ведущего python трека.
Годы идут, но pycon остается для меня очень важным событием, где можно посоперничать с лучшими спикерами python сообщества в России.
Огромное спасибо организаторам, ПК, спикерам и, конечно же, зрителям за такую отличную конференцию! 🔥
До встречи в следующем году 🚀
P.S. Записи появятся примерно через месяц. Обязательно выложу на канале с моим личным топом докладов. 👀
#pycon
Forwarded from Афонасьев Евгений - IT, Python и вот это все
Выложили в паблик полный плейлист докладов с ekbpy 🔥
От себя рекомендую ознакомиться с докладами
🤜 Николай Марков - Управление пакетами - хорошее, плохое, злое? - основательный исторический обзор инструментов управления пакетами в python, какими они были, какие они сейчас?
🤜 Александр Гончаров. Чистый код: антипаттерны в питоне, и как с ними бороться - бодро, весело, задорно про типичные антипаттерны, хорошая подача, юмор
🤜 Аль Амин Ужахов. Как внутри работает Litestar? - про интересные особенности внутреннего устройства фреймворка
#ekbpy
От себя рекомендую ознакомиться с докладами
🤜 Николай Марков - Управление пакетами - хорошее, плохое, злое? - основательный исторический обзор инструментов управления пакетами в python, какими они были, какие они сейчас?
🤜 Александр Гончаров. Чистый код: антипаттерны в питоне, и как с ними бороться - бодро, весело, задорно про типичные антипаттерны, хорошая подача, юмор
🤜 Аль Амин Ужахов. Как внутри работает Litestar? - про интересные особенности внутреннего устройства фреймворка
#ekbpy
YouTube
EkbPy 2024
Уютная конференция по Python 2 февраля 2024 года
Forwarded from Афонасьев Евгений - IT, Python и вот это все
https://peps.python.org/pep-0751/
Вы не ждали и не просили, но он пришел. Очередной pep про стандартный формат lock файлов для фиксации версий транзитивных зависимостей в python. Автор уже давно бьется за право принять подобный pep, и может быть в этот раз ему сопутствует удача. Все же лютый зоопарк решений (poentry, pipenv, pdm, rye) пора уже привести к какому-то общему знаменателю.
Пример нового формата
PEP 665 – A file format to list Python dependencies for reproducibility of an application - последний откланенный pep от этого же автора
Вы не ждали и не просили, но он пришел. Очередной pep про стандартный формат lock файлов для фиксации версий транзитивных зависимостей в python. Автор уже давно бьется за право принять подобный pep, и может быть в этот раз ему сопутствует удача. Все же лютый зоопарк решений (poentry, pipenv, pdm, rye) пора уже привести к какому-то общему знаменателю.
Пример нового формата
PEP 665 – A file format to list Python dependencies for reproducibility of an application - последний откланенный pep от этого же автора
Python Enhancement Proposals (PEPs)
PEP 751 – A file format to record Python dependencies for installation reproducibility | peps.python.org
This PEP proposes a new file format for specifying dependencies to enable reproducible installation in a Python environment. The format is designed to be human-readable and machine-generated. Installers consuming the file should be able to calculate wha...
Forwarded from ДевФест
7 сентября приглашаем всех тех, кто пишет на Python и работаем с ним, обсудить настоящее и будущее языка c экспертами!
Рассмотрим:
- Использование Python в энтерпрайзе
- Все о GIL
- Работа с RabbitMQ
- Внедрение подходов и паттернов из DDD
- Использование библиотек на Rust в Python
Купить билет: www.devfestomsk.ru
Рассмотрим:
- Использование Python в энтерпрайзе
- Все о GIL
- Работа с RabbitMQ
- Внедрение подходов и паттернов из DDD
- Использование библиотек на Rust в Python
Купить билет: www.devfestomsk.ru
Forwarded from Афонасьев Евгений - IT, Python и вот это все
В рамках подготовки доклада нашел интересный материал по адаптации существующих библиотек с низкоуровневыми расширениями под freethreaded cpython (nogil) - https://py-free-threading.github.io . Как я понял, он ведется энтузиастами из сообщества.
Кроме инструкций по портированию и отладке кода https://py-free-threading.github.io/porting/ тут есть интересный документ со статусом портирования многих известных библиотек https://py-free-threading.github.io/tracking/
Кроме инструкций по портированию и отладке кода https://py-free-threading.github.io/porting/ тут есть интересный документ со статусом портирования многих известных библиотек https://py-free-threading.github.io/tracking/
Forwarded from Афонасьев Евгений - IT, Python и вот это все
# Modern Python — уже серьезный ЯП или еще нет? (Нижний Новгород)
Материалы к докладу
## Про cpython и оптимизации в байткоде
- Афонасьев Евгений - А побыстрее можно? - доклад про оптимизации в работе с байтокодом, в рамках него я подробно рассказываю, что такое байткод и как с ним работает cpython
- Афонасьев Евгений - адаптируйся или умри - в рамках доклада подробно разбирается, как работает Specializing Adaptive Interpreter
## Про gil и nogil
- Афонасьев Евгений - Зачем нужен GIL и как от него избавиться? - подробный разбор от меня, как работает GIL, что конкретно он делает, какой план по его удалению из python
- UnderstandingGIL - доклад 2010 года от Дэвида Бизли про GIL во втором питоне, а как он изменился в третьем. Много очень интересных особенностей реализации
- PEP 703 – Making the Global Interpreter Lock Optional in CPython
- Keynote: Multithreaded Python without the GIL - presented by Sam Gross - Автор PEP-703 рассказывает про свой подход отказа от GIL
- перевод статьи 21го года о том, как работает GIL в python, с примерами кода, кишочками и всем, как мы любим. Автор копает глубоко и интересно
- инcтрукция по портирования extensions и таблица со статусом портирования популярных библиотек
## PEP 744 – JIT Compilation
- Афонасьев Евгений - Долгая дорога к JIT - подробный разбор от меня, что такое JIT, в каком виде он появится в 3.13 питоне, и как это повлияет на нас с вами
- Brandt Bucher – A JIT Compiler for CPython презентация для кор девелоперов (eng)
- JIT в Python | Никита Соболев доклад от core developer (ru)
- PEP про JIT, написанный и принятый уже после мержа изменений (eng)
- научная публикация про copy-and-patch jit (eng)
- хорошая статья с простым разъяснением нового JIT в python (eng)
## Другие изменения в python последних лет
- Сводная страницу со статусом по разработке сабинтерпретаторов, известные проблемы, планы, кто использует
- как выглядит DSL для байткода в исходном коде cpython (eng)
- спецификация DSL для байткода (eng)
- ранний дизайн tier2 оптимизатора (uops) (eng)
- PEP 669 – Low Impact Monitoring for CPython (eng)
- PEP 689 – Unstable C API tier (eng)
Материалы к докладу
## Про cpython и оптимизации в байткоде
- Афонасьев Евгений - А побыстрее можно? - доклад про оптимизации в работе с байтокодом, в рамках него я подробно рассказываю, что такое байткод и как с ним работает cpython
- Афонасьев Евгений - адаптируйся или умри - в рамках доклада подробно разбирается, как работает Specializing Adaptive Interpreter
## Про gil и nogil
- Афонасьев Евгений - Зачем нужен GIL и как от него избавиться? - подробный разбор от меня, как работает GIL, что конкретно он делает, какой план по его удалению из python
- UnderstandingGIL - доклад 2010 года от Дэвида Бизли про GIL во втором питоне, а как он изменился в третьем. Много очень интересных особенностей реализации
- PEP 703 – Making the Global Interpreter Lock Optional in CPython
- Keynote: Multithreaded Python without the GIL - presented by Sam Gross - Автор PEP-703 рассказывает про свой подход отказа от GIL
- перевод статьи 21го года о том, как работает GIL в python, с примерами кода, кишочками и всем, как мы любим. Автор копает глубоко и интересно
- инcтрукция по портирования extensions и таблица со статусом портирования популярных библиотек
## PEP 744 – JIT Compilation
- Афонасьев Евгений - Долгая дорога к JIT - подробный разбор от меня, что такое JIT, в каком виде он появится в 3.13 питоне, и как это повлияет на нас с вами
- Brandt Bucher – A JIT Compiler for CPython презентация для кор девелоперов (eng)
- JIT в Python | Никита Соболев доклад от core developer (ru)
- PEP про JIT, написанный и принятый уже после мержа изменений (eng)
- научная публикация про copy-and-patch jit (eng)
- хорошая статья с простым разъяснением нового JIT в python (eng)
## Другие изменения в python последних лет
- Сводная страницу со статусом по разработке сабинтерпретаторов, известные проблемы, планы, кто использует
- как выглядит DSL для байткода в исходном коде cpython (eng)
- спецификация DSL для байткода (eng)
- ранний дизайн tier2 оптимизатора (uops) (eng)
- PEP 669 – Low Impact Monitoring for CPython (eng)
- PEP 689 – Unstable C API tier (eng)
YouTube
Евгений Афонасьев. А побыстрее можно?
Ждем вас на наших конференциях:
2 февраля 2024 - EkbPy
26-27 июля 2024 - PyCon
Евгений Афонасьев
Руководитель отдела, Тинькофф
А побыстрее можно?
Сколько существует python, столько все жалуются, что он медленный. Дошло до того, что даже автор языка признал…
2 февраля 2024 - EkbPy
26-27 июля 2024 - PyCon
Евгений Афонасьев
Руководитель отдела, Тинькофф
А побыстрее можно?
Сколько существует python, столько все жалуются, что он медленный. Дошло до того, что даже автор языка признал…
Forwarded from Афонасьев Евгений - IT, Python и вот это все
Пока составлял список, понял, что совсем забыл опубликовать запись своего доклада с последнего pycon про JIT. Получилось местами сумбурно, местами поверхностно, но, надеюсь, все равно познавательно и не скучно 🫡
https://www.youtube.com/watch?v=BiVEhI7wYS4&list=PLRdS-n5seLRrRY-GcK03hRnnayuVze9g2&index=16
https://www.youtube.com/watch?v=BiVEhI7wYS4&list=PLRdS-n5seLRrRY-GcK03hRnnayuVze9g2&index=16
YouTube
Евгений Афонасьев. Долгая дорога к JIT
Евгений Афонасьев
Teamlead, Авито
Долгая дорога к JIT
JIT или не JIT? Вот в чём вопрос.
Python — язык с многолетней историей. И на протяжении всей своей истории он не был фаворитом в вопросах производительности. Было много разных попыток приблизиться к…
Teamlead, Авито
Долгая дорога к JIT
JIT или не JIT? Вот в чём вопрос.
Python — язык с многолетней историей. И на протяжении всей своей истории он не был фаворитом в вопросах производительности. Было много разных попыток приблизиться к…
Forwarded from Блог о Data Science 💻 (𝘿𝙖𝙣𝙞𝙡 𝙆𝙖𝙧𝙩𝙪𝙨𝙝𝙤𝙫)
Виртуальное окружение
Все ещё встречаю людей, которые не понимают что такое виртуальное окружение, а подробного гайда я так и не выпустил.
Большинство студентов karpov.courses устанавливают anaconda, но мало кто знает какие проблемы она за собой несёт.
Как интуитивно это работает?
Представьте, что ваш python это планета. На единый материк и на этом материке живут некоторые животные (пакеты, библиотеки).
Конечно лев не сможет жить в Антарктиде, так же как белый медведь в Сахаре, так и ваши проекты их пакеты не могут находиться одинаково во всех проектов.
Что бы этого избежать вы изолируете вашу планету на отдельные куски — метрики, регионы, зоны. В каждом из ваших метриков (виртуальных окружений) есть отдельный набор животных, которые не выходят за рамки этого материка.
Проблема анаконды
После удаление анаконды, ее виртуальное окружение не удаляется и остаются некоторые участки, которые мешают для дальнейшей работы.
Это можно понять если в терминале у вас например остался
Более того у нее стоит свой python и в вашем терминале .bashrc указан путь именно к нему, а не к новым python, которые вы устанавливаете.
Инструкция
1. Откройте терминал
2. Зайдите в папку с проектом
3. Введите
4. Появится папочка venv
5. Что бы активировать окружение
—
у вас появится в терминале слева от ввода строки и имя пользователя (venv) это название вашего окружения
6. Что бы деактивировать —
Давайте соберём 100 реактов🐳
Все ещё встречаю людей, которые не понимают что такое виртуальное окружение, а подробного гайда я так и не выпустил.
Большинство студентов karpov.courses устанавливают anaconda, но мало кто знает какие проблемы она за собой несёт.
Как интуитивно это работает?
Представьте, что ваш python это планета. На единый материк и на этом материке живут некоторые животные (пакеты, библиотеки).
Конечно лев не сможет жить в Антарктиде, так же как белый медведь в Сахаре, так и ваши проекты их пакеты не могут находиться одинаково во всех проектов.
Что бы этого избежать вы изолируете вашу планету на отдельные куски — метрики, регионы, зоны. В каждом из ваших метриков (виртуальных окружений) есть отдельный набор животных, которые не выходят за рамки этого материка.
Проблема анаконды
После удаление анаконды, ее виртуальное окружение не удаляется и остаются некоторые участки, которые мешают для дальнейшей работы.
Это можно понять если в терминале у вас например остался
(base) : |
Более того у нее стоит свой python и в вашем терминале .bashrc указан путь именно к нему, а не к новым python, которые вы устанавливаете.
Инструкция
1. Откройте терминал
2. Зайдите в папку с проектом
3. Введите
python -m venv venv
4. Появится папочка venv
5. Что бы активировать окружение
—
source venv/bin/activate
у вас появится в терминале слева от ввода строки и имя пользователя (venv) это название вашего окружения
6. Что бы деактивировать —
deactivate
Давайте соберём 100 реактов
Please open Telegram to view this post
VIEW IN TELEGRAM
#logging.py
https://github.com/hnkovr/summarize-backend/blob/3d73a40e2249696583dfeecfce9dae9fa8a5ddf7/core/logger.py#L28
https://github.com/hnkovr/summarize-backend/blob/3d73a40e2249696583dfeecfce9dae9fa8a5ddf7/core/logger.py#L28
GitHub
summarize-backend/core/logger.py at 3d73a40e2249696583dfeecfce9dae9fa8a5ddf7 · hnkovr/summarize-backend
FOSWLY Summarize - Free Yandex Summarize API without any authorization or restrictions - hnkovr/summarize-backend