From 944468a8a0a700f2a80cf6def7df73062dfed3cf Mon Sep 17 00:00:00 2001 From: Ivan Date: Mon, 20 Jul 2026 16:09:34 +0300 Subject: [PATCH] =?UTF-8?q?[TASK]=20=D0=92=D0=B8=D1=80=D1=82=D1=83=D0=B0?= =?UTF-8?q?=D0=BB=D1=8C=D0=BD=D0=BE=D0=B5=20=D0=BE=D0=BA=D1=80=D1=83=D0=B6?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=20#7=20Open=20(https://github.com/S?= =?UTF-8?q?ENATOROVAI/intro-cs/issues/7)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit closes https://github.com/SENATOROVAI/intro-cs/issues/7 --- .gitignore | 3 ++ .pre-commit-config.yaml | 10 ++-- environment.yml | Bin 0 -> 780 bytes python/venv.ipynb | 104 ++++++++++++++++++++++++++++++++++++++++ python/venv.py | 45 +++++++++++++++++ requirements.txt | Bin 0 -> 30 bytes 6 files changed, 157 insertions(+), 5 deletions(-) create mode 100644 environment.yml create mode 100644 python/venv.ipynb create mode 100644 python/venv.py create mode 100644 requirements.txt diff --git a/.gitignore b/.gitignore index 0fa2f447..91e724c9 100644 --- a/.gitignore +++ b/.gitignore @@ -333,3 +333,6 @@ coverage/ /Math/calculus/theory /Math/school_theory + +SENATOROV/ + diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 15b0981a..9a577a23 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -14,11 +14,11 @@ repos: - --sync - --warn-only exclude: '.*\.md$' - - repo: https://github.com/PyCQA/docformatter - rev: "eb1df347edd128b30cd3368dddc3aa65edcfac38" - hooks: - - id: docformatter - args: [--in-place, --wrap-descriptions=120, --style=google] +# - repo: https://github.com/PyCQA/docformatter +# rev: "eb1df347edd128b30cd3368dddc3aa65edcfac38" +# hooks: +# - id: docformatter +# args: [--in-place, --wrap-descriptions=120, --style=google] - repo: https://github.com/psf/black.git rev: "24.10.0" hooks: diff --git a/environment.yml b/environment.yml new file mode 100644 index 0000000000000000000000000000000000000000..1ac24c55684cc434b51e38cbd23fd3839b8ae46c GIT binary patch literal 780 zcmZ{i*-FDe6o&t6!FT8j7_!y{=0e0<1-C1qBuyj%O+(YgzP$RKX^U;O3}=`*=l{?C z{naYhhbmoZphw;6PS<+Uy&jMko$5qm)nHmqrFZopO*`P6Atl;3>~m~0tY$M^hqV6H z;-TSp$Q+}a!fD_)a*7pt2{csTUk)!TqL)g*7K)HiBYwLXbg(=45w^ff#Lt+CGSJ}x zdPU4y6S8w40x%ZQp{u~g{7b~*>@$1pGwSTPCmidAQwqwmwaCY#&gp^Gx|?MTYluV} zu5~%rC9yN|ivPr4;KTSS_=HytrlfZnoQQkG9q-j@48xCzJ*Qslwat3#CEfVS;Dx&I zK2yBKI`_wzhd!6SPqqopSDt_jKpmUaeh-&qVEeG1eD6Cs^% requirements.txt - фиксирует используемые в проекте библиотеки в файл requirements.txt (знак > перенаправляет вывод в текстовый файл)\n", + " pip install -r requirements.txt - устанавливает библиотеки, прописанные в соответствующем файле (requirements.txt, -r - буквально означает requirements)\n", + " Примечание: пип лист больше удобен и читаем для человека, а пип фриз - для машины (хотя оба показывают список установленных пакетов).\n", + "2. Что делает каждая команда в списке ниже? \n", + "conda env list - показывает список доступных (созданных) виртуальный окружений с помощью conda \n", + "conda create -n env_name python=3.5 - создает виртуальное окружение с версией пайтона 3.5 (-n - флаг, отвечающий за имя (name))\n", + "conda env update -n env_name -f file.yml - обновляет библиотеки и зависимости из файла file.yml (файл конфигурации со списком библиотек, аналог requirements.txt), если он был изменен. Примечание: флаг -f - указывает файл из которого смотрятся библиотеки проекта, -n - имя виртуального окружения.\n", + "source activate env_name - эта команда активирует виртуальное окружение (unix like systems)\n", + "source deactivate - деактивирует текущее (активное) виртуальное окружение\n", + "conda clean -a - удаляет неиспользуемые и временные файлы (кэш, неиспользуемые библиотеки и их установщики). -a - флаг, которые означает все (all)\n", + "3. вставьте скрин вашего терминала, где вы активировали сначала venv, потом conda, назовите окружение \"SENATOROV\"\n", + " через venv: ![image.png](attachment:image.png)\n", + " через conda: ![image-2.png](attachment:image-2.png)\n", + "4. Как установить необходимые пакеты внутрь виртуального окружения для conda/venv? \n", + " VENV: в venv мы в активированном venv прописываем pip install, которые нам нужны или выгружаем все необходимые зависимости из requirement.txt командой pip install -r requirements. \n", + " CONDA: в виртуальном окружении конды мы прописываем команду с заранее подготовленным файлом conda env create -f environment (прописывается 1 раз, с нуля), создастся ВО с соответствующими пакетами. Поштучно: conda install package_name, и обновление (дополнение) пакетов с помощью файла: conda env update -n env_name -f file.yml\n", + "5. Что делают эти команды?\n", + "pip freeze > requirements.txt - отмечает все установленные библиотеки, модули и зависимости в текущем виртуальном окружении в файл requirements.txt\n", + "conda env export > environment.yml - отмечает все установленные библиотеки, модули и зависимости в текущем виртуальном окружении в файл environment.yml\n", + "5.1 вставьте скрин, где будет видна папка VENV в вашем репозитории а также файлы зависимостей requirements.txt и environment.yml, файлы должны содержать зависимости:\n", + "![image-3.png](attachment:image-3.png)\n", + "6. Что делают эти команды?\n", + "pip install -r requirements.txt - устанавливает прописанные пакеты из requirements.txt\n", + "conda env create -f environment.yml - создает новое окружение и устанавливает прописанные пакеты из environment.yml (при использовании conda) \n", + "7. Что делают эти команды?\n", + "pip list - показывает список установленных зависимостей и библиотек в текущем окружении\n", + "pip show - показывает подробную информацию по одному конкретному пакету\n", + "conda list - показывает список установленных зависимостей и библиотек в текущем окружении (при использовании виртуального окружения с помощью conda)\n", + "8. Где по умолчанию больше пакетов venv/pip или conda? и почему дата сайнинисты используют conda? conda - 542 строчки (conda list), pip - 393 (pip list), соответственно в conda по умолчанию больше пакетов (но это локально, глобально в репозиториях pip гораздо больше библиотек). Дата саентисты используют конду, потому что в ней предустановленны все необходимые библиотеки (также и ПО, несвязанное напрямую с Python) именно для дата саенс, вследствие чего экономится время на установку библиотек и зависимостей. \n", + "9. вставьте скрин где будет видно, Выбор интерпретатора Python (conda) в VS Code/cursor ![image-4.png](attachment:image-4.png)\n", + "\n", + "10. добавьте в .gitignore папку SENATOROV: ![image-5.png](attachment:image-5.png)\n", + "\n", + "11. Зачем нужно виртуально окружение? В основном для того чтобы избежать конфликтов между разными версиями библиотек и модулей, изолируя текущие зависимости и пакеты. (также можно добавить упрощение переноса кода, лишние библиотеки, не относящиеся к проекту не попадут в репозиторий, и безопасность операционной системы, то есть защита от поломок)\n", + "\n", + "12. С этого момента надо работать в виртуальном окружении conda, ты научился(-ась) выгружать зависимости и работать с окружением? да!\n", + "\n", + "13. Удалите папку VENV, она больше не нужна, мы же не разрабы, нам нужна только conda - ок! ![image-6.png](attachment:image-6.png)\n", + "\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "base", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/python/venv.py b/python/venv.py new file mode 100644 index 00000000..5e8619f6 --- /dev/null +++ b/python/venv.py @@ -0,0 +1,45 @@ +"""Виртуальное окружение.""" + +# 1. Что делает команда python -m venv venv? Создает виртуальное окружение python с названием venv (-m - флаг, отвечающий за модуль (module), то есть мы говорим пайтону запустить модуль с названием venv) +# 1.1. Что делает каждая команда в списке ниже? +# pip list - показывает зависимости текущего проекта и иъ версии +# pip freeze > requirements.txt - фиксирует используемые в проекте библиотеки в файл requirements.txt (знак > перенаправляет вывод в текстовый файл) +# pip install -r requirements.txt - устанавливает библиотеки, прописанные в соответствующем файле (requirements.txt, -r - буквально означает requirements) +# Примечание: пип лист больше удобен и читаем для человека, а пип фриз - для машины (хотя оба показывают список установленных пакетов). +# 2. Что делает каждая команда в списке ниже? +# conda env list - показывает список доступных (созданных) виртуальный окружений с помощью conda +# conda create -n env_name python=3.5 - создает виртуальное окружение с версией пайтона 3.5 (-n - флаг, отвечающий за имя (name)) +# conda env update -n env_name -f file.yml - обновляет библиотеки и зависимости из файла file.yml (файл конфигурации со списком библиотек, аналог requirements.txt), если он был изменен. Примечание: флаг -f - указывает файл из которого смотрятся библиотеки проекта, -n - имя виртуального окружения. +# source activate env_name - эта команда активирует виртуальное окружение (unix like systems) +# source deactivate - деактивирует текущее (активное) виртуальное окружение +# conda clean -a - удаляет неиспользуемые и временные файлы (кэш, неиспользуемые библиотеки и их установщики). -a - флаг, которые означает все (all) +# 3. вставьте скрин вашего терминала, где вы активировали сначала venv, потом conda, назовите окружение "SENATOROV" +# через venv: ![image.png](attachment:image.png) +# через conda: ![image-2.png](attachment:image-2.png) +# 4. Как установить необходимые пакеты внутрь виртуального окружения для conda/venv? +# VENV: в venv мы в активированном venv прописываем pip install, которые нам нужны или выгружаем все необходимые зависимости из requirement.txt командой pip install -r requirements. +# CONDA: в виртуальном окружении конды мы прописываем команду с заранее подготовленным файлом conda env create -f environment (прописывается 1 раз, с нуля), создастся ВО с соответствующими пакетами. Поштучно: conda install package_name, и обновление (дополнение) пакетов с помощью файла: conda env update -n env_name -f file.yml +# 5. Что делают эти команды? +# pip freeze > requirements.txt - отмечает все установленные библиотеки, модули и зависимости в текущем виртуальном окружении в файл requirements.txt +# conda env export > environment.yml - отмечает все установленные библиотеки, модули и зависимости в текущем виртуальном окружении в файл environment.yml +# 5.1 вставьте скрин, где будет видна папка VENV в вашем репозитории а также файлы зависимостей requirements.txt и environment.yml, файлы должны содержать зависимости: +# ![image-3.png](attachment:image-3.png) +# 6. Что делают эти команды? +# pip install -r requirements.txt - устанавливает прописанные пакеты из requirements.txt +# conda env create -f environment.yml - создает новое окружение и устанавливает прописанные пакеты из environment.yml (при использовании conda) +# 7. Что делают эти команды? +# pip list - показывает список установленных зависимостей и библиотек в текущем окружении +# pip show - показывает подробную информацию по одному конкретному пакету +# conda list - показывает список установленных зависимостей и библиотек в текущем окружении (при использовании виртуального окружения с помощью conda) +# 8. Где по умолчанию больше пакетов venv/pip или conda? и почему дата сайнинисты используют conda? conda - 542 строчки (conda list), pip - 393 (pip list), соответственно в conda по умолчанию больше пакетов (но это локально, глобально в репозиториях pip гораздо больше библиотек). Дата саентисты используют конду, потому что в ней предустановленны все необходимые библиотеки (также и ПО, несвязанное напрямую с Python) именно для дата саенс, вследствие чего экономится время на установку библиотек и зависимостей. +# 9. вставьте скрин где будет видно, Выбор интерпретатора Python (conda) в VS Code/cursor ![image-4.png](attachment:image-4.png) +# +# 10. добавьте в .gitignore папку SENATOROV: ![image-5.png](attachment:image-5.png) +# +# 11. Зачем нужно виртуально окружение? В основном для того чтобы избежать конфликтов между разными версиями библиотек и модулей, изолируя текущие зависимости и пакеты. (также можно добавить упрощение переноса кода, лишние библиотеки, не относящиеся к проекту не попадут в репозиторий, и безопасность операционной системы, то есть защита от поломок) +# +# 12. С этого момента надо работать в виртуальном окружении conda, ты научился(-ась) выгружать зависимости и работать с окружением? да! +# +# 13. Удалите папку VENV, она больше не нужна, мы же не разрабы, нам нужна только conda - ок! ![image-6.png](attachment:image-6.png) +# +# diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..f63c7a07330fd907c8bee4fa7295e88a6a2cfba4 GIT binary patch literal 30 icmezWFOQ*=A(x?mp_0KC2#px@7)*iKkb#$hiva+E>IJ+2 literal 0 HcmV?d00001