diff --git a/.gitignore b/.gitignore index 0fa2f447..ac302ddf 100644 --- a/.gitignore +++ b/.gitignore @@ -129,6 +129,7 @@ venv/ ENV/ env.bak/ venv.bak/ +SENATOROV/ # Spyder project settings .spyderproject diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a992a51a..4d6ad005 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -159,8 +159,6 @@ repos: - --disallow-any-generics - --local-partial-types - --pretty - - --force-uppercase-builtins - - --force-union-syntax - --warn-unreachable - --warn-redundant-casts - --warn-return-any @@ -189,8 +187,6 @@ repos: - --disallow-any-generics - --local-partial-types - --pretty - - --force-uppercase-builtins - - --force-union-syntax - --warn-unreachable - --warn-redundant-casts - --warn-return-any diff --git a/python/venv.ipynb b/python/venv.ipynb new file mode 100644 index 00000000..129dac15 --- /dev/null +++ b/python/venv.ipynb @@ -0,0 +1,190 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "e433f050", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"Выполнение заданий TASK 7.\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "a8d32b16", + "metadata": {}, + "source": [ + "**1. Что делает команда python -m venv venv?**\n", + "\n", + "Создает виртуальное окружение с именем venv" + ] + }, + { + "cell_type": "markdown", + "id": "b1f5dd1f", + "metadata": {}, + "source": [ + "**1.1 Что делает каждая команда в списке ниже?**\n", + "- pip list - выводит список зависимостей, установленных в данном виртуальном окружении\n", + "- pip freeze > requirements.txt - выгружает зависимости из текущего виртуального окружения в файл requirements.txt\n", + "- pip install -r requirements.txt - устанавливает зависимости, описанные в requirements.txt, в текущее виртуальное окружение" + ] + }, + { + "cell_type": "markdown", + "id": "1e9861fb", + "metadata": {}, + "source": [ + "**2. Что делает каждая команда в списке ниже?**\n", + "- conda env list - показывает список всех существующих виртуальных окружений сonda \n", + "- conda create -n env_name python=3.5 - создаёт виртуальное окружение с именем env_name и устанавливает в него интерпретатор Python версии 3.5\n", + "- conda env update -n env_name -f file.yml - обновляет указанное окружение на основе описания в file.yml\n", + "- source activate env_name - активирует виртуальное окружение с именем еnv_name\n", + "- source deactivate - деактивирует текущее виртуальное окружение\n", + "- conda clean -a - выполняет полную очистку кэша сonda" + ] + }, + { + "attachments": { + "image.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "id": "cffca5e5", + "metadata": {}, + "source": [ + "**3. вставьте скрин вашего терминала, где вы активировали сначала venv, потом conda, назовите окружение \"SENATOROV\"**\n", + "\n", + "![image.png](attachment:image.png)" + ] + }, + { + "cell_type": "markdown", + "id": "65f9df72", + "metadata": {}, + "source": [ + "**4. Как установить необходимые пакеты внутрь виртуального окружения для conda/venv?**\n", + "\n", + "Для conda:\n", + "conda install <имя_пакета>\n", + "Для venv:\n", + "pip install <имя_пакета>" + ] + }, + { + "cell_type": "markdown", + "id": "ad4e4752", + "metadata": {}, + "source": [ + "**5. Что делают эти команды?**\n", + "- pip freeze > requirements.txt\n", + "- conda env export > environment.yml\n", + "\n", + "Обе команды выгружают зависимости в файлы. Разница в следующем:\n", + "1. первая команда работает с venv, вторая - с conda\n", + "2. вторая команда не просто выгружает зависимости, но и делает полный \"слепок\" виртуального окружения" + ] + }, + { + "cell_type": "markdown", + "id": "9551a8d4", + "metadata": {}, + "source": [ + "**6. Что делают эти команды?**\n", + "- pip install -r requirements.txt - добавляет пакеты в уже существующее активное окружение\n", + "- conda env create -f environment.yml - создаёт новое окружение с нуля, изолированное, со всеми зависимостями, включая конкретную версию Python" + ] + }, + { + "cell_type": "markdown", + "id": "f9c5400f", + "metadata": {}, + "source": [ + "**7.Что делают эти команды?**\n", + "- pip list - выводит список всех установленных пакетов в текущем виртуальном окружении\n", + "- pip show - показывает подробную информацию о конкретном установленном пакете\n", + "- conda list - выводит список всех пакетов, установленных в текущем активном окружении conda" + ] + }, + { + "cell_type": "markdown", + "id": "f8ac43c7", + "metadata": {}, + "source": [ + "**8. Где по умолчанию больше пакетов venv/pip или conda? и почему дата сайнинисты используют conda?**\n", + "\n", + "Больше пакетов в conda. По умолчанию в venv не установлены пакеты для Data Science" + ] + }, + { + "attachments": { + "image.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "id": "a505ef82", + "metadata": {}, + "source": [ + "**9. Вставьте скрин где будет видно, Выбор интерпретатора Python (conda) в VS Code/cursor**\n", + "\n", + "![image.png](attachment:image.png)" + ] + }, + { + "cell_type": "markdown", + "id": "d938d369", + "metadata": {}, + "source": [ + "**10. Добавьте в .gitignore папку SENATOROV**\n", + "\n", + "Готово" + ] + }, + { + "cell_type": "markdown", + "id": "7edd15a5", + "metadata": {}, + "source": [ + "**11. Зачем нужно виртуальное окружение?**\n", + "\n", + "Виртуальные окружения нужны, чтобы изолировать зависимости разных проектов друг от друга и от глобальной установки" + ] + }, + { + "cell_type": "markdown", + "id": "bf484a8a", + "metadata": {}, + "source": [ + "**12. С этого момента надо работать в виртуальном окружении conda, ты научился(-ась) выгружать зависимости и работать с окружением?**\n", + "\n", + "Да!" + ] + }, + { + "cell_type": "markdown", + "id": "08ae61e7", + "metadata": {}, + "source": [ + "**13. Удалите папку VENV, она больше не нужна, мы же не разрабы, нам нужна только conda**\n", + "\n", + "Готово" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "base", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.13.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/python/venv.py b/python/venv.py new file mode 100644 index 00000000..fc6bdd3f --- /dev/null +++ b/python/venv.py @@ -0,0 +1,70 @@ +"""Выполнение заданий TASK 7.""" + +# **1. Что делает команда python -m venv venv?** +# +# Создает виртуальное окружение с именем venv + +# **1.1 Что делает каждая команда в списке ниже?** +# - pip list - выводит список зависимостей, установленных в данном виртуальном окружении +# - pip freeze > requirements.txt - выгружает зависимости из текущего виртуального окружения в файл requirements.txt +# - pip install -r requirements.txt - устанавливает зависимости, описанные в requirements.txt, в текущее виртуальное окружение + +# **2. Что делает каждая команда в списке ниже?** +# - conda env list - показывает список всех существующих виртуальных окружений сonda +# - conda create -n env_name python=3.5 - создаёт виртуальное окружение с именем env_name и устанавливает в него интерпретатор Python версии 3.5 +# - conda env update -n env_name -f file.yml - обновляет указанное окружение на основе описания в file.yml +# - source activate env_name - активирует виртуальное окружение с именем еnv_name +# - source deactivate - деактивирует текущее виртуальное окружение +# - conda clean -a - выполняет полную очистку кэша сonda + +# **3. вставьте скрин вашего терминала, где вы активировали сначала venv, потом conda, назовите окружение "SENATOROV"** +# +# ![image.png](attachment:image.png) + +# **4. Как установить необходимые пакеты внутрь виртуального окружения для conda/venv?** +# +# Для conda: +# conda install <имя_пакета> +# Для venv: +# pip install <имя_пакета> + +# **5. Что делают эти команды?** +# - pip freeze > requirements.txt +# - conda env export > environment.yml +# +# Обе команды выгружают зависимости в файлы. Разница в следующем: +# 1. первая команда работает с venv, вторая - с conda +# 2. вторая команда не просто выгружает зависимости, но и делает полный "слепок" виртуального окружения + +# **6. Что делают эти команды?** +# - pip install -r requirements.txt - добавляет пакеты в уже существующее активное окружение +# - conda env create -f environment.yml - создаёт новое окружение с нуля, изолированное, со всеми зависимостями, включая конкретную версию Python + +# **7.Что делают эти команды?** +# - pip list - выводит список всех установленных пакетов в текущем виртуальном окружении +# - pip show - показывает подробную информацию о конкретном установленном пакете +# - conda list - выводит список всех пакетов, установленных в текущем активном окружении conda + +# **8. Где по умолчанию больше пакетов venv/pip или conda? и почему дата сайнинисты используют conda?** +# +# Больше пакетов в conda. По умолчанию в venv не установлены пакеты для Data Science + +# **9. Вставьте скрин где будет видно, Выбор интерпретатора Python (conda) в VS Code/cursor** +# +# ![image.png](attachment:image.png) + +# **10. Добавьте в .gitignore папку SENATOROV** +# +# Готово + +# **11. Зачем нужно виртуальное окружение?** +# +# Виртуальные окружения нужны, чтобы изолировать зависимости разных проектов друг от друга и от глобальной установки + +# **12. С этого момента надо работать в виртуальном окружении conda, ты научился(-ась) выгружать зависимости и работать с окружением?** +# +# Да! + +# **13. Удалите папку VENV, она больше не нужна, мы же не разрабы, нам нужна только conda** +# +# Готово