Менеджер пакетов pip
pip устанавливает пакеты из индекса PyPI:
pip install requestspip install requests==2.32.3pip install "requests>=2.30,<3"pip install --upgrade requestspip uninstall requestspip listpip show requestsБезопаснее вызывать pip как модуль конкретного интерпретатора:
python -m pip install requestsВиртуальные окружения
Виртуальное окружение изолирует зависимости проекта от системного Python и от других проектов.
Создание:
python -m venv .venvАктивация:
source .venv/bin/activate.venv\Scripts\activateПосле активации python и pip относятся к окружению. Выход:
deactivateПапку .venv не добавляют в репозиторий — внесите её в .gitignore.
Файл requirements.txt
Фиксация зависимостей:
pip freeze > requirements.txtУстановка на другой машине:
pip install -r requirements.txtПример файла:
requests==2.32.3flask>=3.0Рекомендуемая структура проекта
project/ .venv/ .gitignore requirements.txt README.md src/ app/ __init__.py main.py config.py tests/ test_main.pyЗапуск модуля
Пакет запускается как модуль:
python -m app.mainДля этого в пакете может лежать файл __main__.py.
Аргументы командной строки
import argparseparser = argparse.ArgumentParser(description="Пример программы")parser.add_argument("path")parser.add_argument("-v", "--verbose", action="store_true")parser.add_argument("-n", "--count", type=int, default=1)args = parser.parse_args()print(args.path, args.verbose, args.count)Логирование
import logginglogging.basicConfig( level=logging.INFO, format="%(asctime)s %(levelname)s %(name)s: %(message)s",)log = logging.getLogger(__name__)log.info("запуск")log.warning("предупреждение")log.error("ошибка")Используйте logging вместо print в любых программах, кроме совсем простых скриптов.
Задания
- Создайте виртуальное окружение, установите
requestsи выполните GET-запрос к любому публичному API. - Напишите утилиту с
argparse, принимающую путь к папке и выводящую количество файлов в ней.
