Debugging (Русский)/Getting traces (Русский)
Состояние перевода: На этой странице представлен перевод статьи Debugging/Getting traces. Дата последней синхронизации: 19 мая 2023. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
- Устранение часто встречающихся неполадок
- Указания по созданию отчета об ошибке
- Debuginfod (Русский)
- Дамп памяти
Эта статья описывает отладку программы и получение трассировки и отладочной информации, которую можно будет отправить разработчикам в сообщении об ошибке.
Введение
Обычно исполняемые файлы очищаются (strip) от человекочитаемого контекста, чтобы уменьшить их размер. Кроме того, расширенная отладочная информация обычно не добавляется в исполняемый файл, что сильно снижает полезность трассировки. Поэтому перед получением трассировки нужно пересобрать пакет без выполнения strip и с включением отладочных символов.
Используйте полную трассировку стека, чтобы сообщить разработчикам о найденной вами ошибке — это сильно поможет в решении проблемы.
Во время отладки, например, при просмотре дампа памяти в gdb , вы увидите что-то подобное (смотрите раздел #Получение трассировки):
[. ] Backtrace was generated from '/usr/bin/epiphany' (no debugging symbols found) Using host libthread_db library "/lib/libthread_db.so.1". (no debugging symbols found) [Thread debugging using libthread_db enabled] [New Thread -1241265952 (LWP 12630)] (no debugging symbols found) 0xb7f25410 in __kernel_vsyscall () #0 0xb7f25410 in __kernel_vsyscall () #1 0xb741b45b in ?? () from /lib/libpthread.so.0 [. ]
строки вида ?? и (no debugging symbols found) показывают, что необходимая отладочная информация, такая, как названия функций, файлов, библиотек, отсутствует в отлаживаемом файле.
Есть несколько способов получения отладочной информации, каждый из которых описан в соответствующем разделе: #Debuginfod, #Установка отладочных пакетов, #Пересборка пакетов.
Debuginfod
Для пакетов из официальных репозиториев, которые это поддерживают (смотрите https://debuginfod.archlinux.org/packages), можно скачать отладочную информацию с помощью debuginfod.
gdb автоматически скачивает её, если задана переменная окружения DEBUGINFOD_URLS . Она задаётся автоматически с помощью файла в /etc/profile.d/ .
$ gdb приложение
This GDB supports auto-downloading debuginfo from the following URLs: https://debuginfod.archlinux.org> Enable debuginfod for this session? (y or [n]) y Debuginfod has been enabled. To make this setting permanent, add 'set debuginfod enabled on' to .gdbinit. Downloading separate debug info for /usr/bin/приложение Reading symbols from /home/user/.cache/debuginfod_client/fbaee841e2ed2c11ecbbda26f39eeec1da23d6c3/debuginfo.
После включения поддержки debuginfo можно сразу переходить к разделу #Получение трассировки.
Скачивание вручную
Например, чтобы скачать отладочные символы для пакета zstd вместе с исходным кодом, можно использовать debuginfo-find:
$ debuginfod-find debuginfo /usr/bin/zstd
/home/user/.cache/debuginfod_client/70e1b456c5813658df6436a3deb71812e75a0267/debuginfo
$ debuginfod-find source /usr/bin/zstd /usr/src/debug/zstd-1.5.2/programs/fileio.c
/home/user/.cache/debuginfod_client/70e1b456c5813658df6436a3deb71812e75a0267/source##usr##src##debug##zstd-1.5.2##programs##fileio.c
Получение отладочной информации вручную
Сначала нужно узнать имена пакетов, которые нужно пересобрать или для которых нужно установить отладочные пакеты.
[. ] Backtrace was generated from '/usr/bin/epiphany' (no debugging symbols found) Using host libthread_db library "/lib/libthread_db.so.1". (no debugging symbols found) [. ]
Проверить, какому пакету принадлежат упомянутые в тексте исполняемые файлы или библиотеки, можно, например, с помощью pacman:
$ pacman -Qo /lib/libthread_db.so.1
/lib/libthread_db.so.1 принадлежит glibc 2.5-8
Пакет glibc версии 2.5-8. Повторите это для каждого упомянутого файла, чтобы собрать список пакетов, которым нужна отладочная информация.
Установка отладочных пакетов
Примечание: Arch Linux Archive не хранит отладочные пакеты.
В настоящее время несколько зеркал распространяют отладочные пакеты в доступных репозиториях. Это спонсируемые зеркала, контролируемые Arch Linux, которым предоставляется доступ к отладочным репозиториям.
- https://geo.mirror.pkgbuild.com (зеркало GeoDNS)
Можно установить пакет напрямую из репозитория. Например:
# pacman -U https://geo.mirror.pkgbuild.com/core-debug/os/x86_64/zstd-debug-1.5.2-2-x86_64.pkg.tar.zst
Важно: Отладочные пакеты с одного зеркала несовместимы с обычными пакетами с другого зеркала, если оба зеркала не синхронизированы и оттого имеют несовпадающие сборки. В этом случае избегайте смешивания пакетов с разных зеркал (что приведёт к частичному обновлению), а перенастройте все репозитории на одно debug-зеркало.
Другой вариант — добавить репозитории в конфигурацию pacman.
/etc/pacman.conf
# Testing Repositories [core-testing-debug] Include = /etc/pacman.d/mirrorlist [extra-testing-debug] Include = /etc/pacman.d/mirrorlist [multilib-testing-debug] Include = /etc/pacman.d/mirrorlist # Stable repositories [core-debug] Include = /etc/pacman.d/mirrorlist [extra-debug] Include = /etc/pacman.d/mirrorlist [multilib-debug] Include = /etc/pacman.d/mirrorlist
Поместите зеркало с отладочными пакетами в качестве первого в файле mirrorlist:
/etc/pacman.d/mirrorlist
Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch .
Пересборка пакетов
Если отладочная информация недоступна через debuginfod (например, если пакет собран из AUR), то его можно пересобрать из исходников с включением отладки. Получение файлов PKGBUILD от пакетов из официальных репозиториев описано в статье Arch build system (Русский); работа с пакетами из AUR описана в статье Arch User Repository (Русский)#Получение файлов.
Чтобы установить необходимые #Параметры компиляции, можно изменить настройки makepkg, если вы планируете использовать makepkg только для отладки. В других случаях меняйте файлы PKGBUILD только тех пакетов, которые вы хотите пересобрать.
Параметры компиляции
С версии pacman 4.1 makepkg.conf(5) имеет отладочные флаги компиляции в DEBUG_CFLAGS и DEBUG_CXXFLAGS . Для их использования включите опцию debug и отключите опцию strip .
Эти настройки включат компиляцию с отладочными символами и отключат их удаление из исполняемых файлов.
/etc/makepkg.conf
OPTIONS+=(debug !strip)
Для изменения параметров отдельного пакета измените его PKGBUILD :
PKGBUILD
options=(debug !strip)
В качестве альтернативы можно поместить информацию об отладке в отдельный пакет, включив обе опции debug и strip . Тогда отладочные символы будут удалены из основного пакета и помещены вместе с исходным кодом в отдельный пакет pkgbase-debug . Это может пригодиться, если пакет содержит очень большие бинарные файлы (например, больше гигабайта с включенными отладочными символами), так как они могут привести к зависаниям и другому странному поведению.
Примечание: Недостаточно просто установить новый собранный отладочный пакет, поскольку отладчик проверит, что отладочные файлы относятся к той же сборке, что и связанные с ним библиотека и исполняемый файл. Нужно установить оба собранных пакета. В Arch отладочные файлы устанавливаются в /usr/lib/debug/ , а исходные коды — в /usr/src/debug . Подробнее об отладочных пакетах можно почитать в документации GDB.
glibc
Некоторые пакеты, к примеру glibc, всё равно удаляют отладочные символы. Проверьте PKGBUILD на наличие подобных команд:
strip $STRIP_BINARIES usr/bin/ \ usr/bin/ \ usr/bin/ \ usr/lib/getconf/* strip $STRIP_STATIC usr/lib/*.a strip $STRIP_SHARED usr/lib/-*.so \ usr/lib/libnss_-*.so \ usr/lib/-*.so \ usr/lib/.so \ usr/lib//*.so
И удалите их по необходимости.
Clang
Пакеты, использующие Clang в качестве компилятора, не будут собираться с опцией debug из-за того, что флаг -fvar-tracking-assignments’ не обрабатывается (например, js78 [ссылка недействительна: package not found] ).
Добавьте следующее в начало функции build() нужного пакета:
build() < CFLAGS=$CXXFLAGS=$ [. ]
LTO
При использовании link-time optimization (LTO) как во время компиляции, так и в отладчике будет использоваться больше памяти[1][2]. Если приложение большое, такое как Firefox или Qt, памяти может не хватить. В этом случае собирайте приложение без LTO.
Все пакеты в официальных репозиториях обычно собираются с LTO.
Сборка и установка пакета
Соберите пакет командой makepkg , находясь в одном каталоге с файлом PKGBUILD . Это может занять некоторое время:
$ makepkg
Установка собранного пакета:
# pacman -U glibc-2.26-1-x86_64.pkg.tar.gz
Получение трассировки
Теперь можно получить backtrace (трассировку стека), например, с помощью gdb (GNU Debugger). Запуск осуществляется так:
# gdb /путь/к/файлу
Совет: gdb использует переменную окружения $PATH , так что указывать полный путь к исполняемому файлу обычно не требуется.
Затем в gdb введите run и аргументы для передачи запускаемому файлу:
(gdb) run аргументы
После запуска выполните действия, приводящие к возникновению бага. Когда приложение упадёт, gdb автоматически прекратит его выполнение и отобразит приглашение для ввода команд. Если программа зависает, можно нажать Ctrl+c для перехода к вводу команд.
Можно включить логирование происходящего командой:
(gdb) set logging enabled on
Совет: По умолчанию лог пишется в файл с именем gdb.txt . Задать другое имя можно командой:
(gdb) set logging file trace.log
и, наконец, записать трассировку в файл trace.log в текущем рабочем каталоге:
(gdb) thread apply all backtrace full
Совет: Для отладки Python-приложения:
# gdb /usr/bin/python (gdb) run python-приложение
Также отладчик может подключиться к уже запущенному приложению:
# gdb --pid=$(pidof firefox) (gdb) continue
Для отладки уже упавшего приложения запустите gdb на соответствующем дампе памяти.
Смотрите также
- Debian:HowToGetABacktrace
- Gentoo:Project:Quality Assurance/Backtraces
- Fedora:StackTraces
- GNOME - Getting Stack Traces
- gdb mini intro
Установка отладочных символов для интерпретаторов Python
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
Чтобы предоставить полные возможности отладки, отладчику смешанного режима Python в Visual Studio нужны отладочные символы для интерпретатора Python, который используется для анализа множества внутренних структур данных. Для python27.dll, например, соответствующим файлом символов является python27.pdb; для python36.dll файлом символов является python36.pdb. Каждая версия интерпретатора также поддерживает файлы символов для различных модулей.
В Visual Studio 2017 и более поздних версий интерпретаторы Python 3 и Anaconda 3 автоматически устанавливают соответствующие символы, которые Visual Studio находит автоматически. Для Visual Studio 2015 и более ранних версий или при использовании других интерпретаторов необходимо скачать символы отдельно, а затем указать Visual Studio на них с помощью диалогового окна "Параметры инструментов>" на вкладке "Символы отладки".> Эти действия подробно описаны в следующих разделах.
Visual Studio может вывести запрос на использование символов (обычно при запуске сеанса отладки в смешанном режиме). В этом случае отображается диалоговое окно с двумя вариантами выбора:

- Открыть диалоговое окно параметров — открывает вкладку Отладка>Символы в диалоговом окне Параметры.
- Скачать символы для моего интерпретатора — открывает эту страницу документации. В этом случае выберите Сервис>Параметры и перейдите на вкладку Отладка>Символы, чтобы продолжить.
Скачать символы

- Python 3.5 и более поздние версии: получите отладочные символы с помощью установщика Python. Выберите Выборочная установка, затем нажмите кнопку Далее и перейдите к разделу Дополнительные параметры. Здесь установите флажки Загрузить отладочные символы и Загрузить двоичные файлы отладки. Файлы символов (PDB) будут находиться в корневой папке установки (файлы символов для отдельных модулей находятся в папке DLLs). Поэтому Visual Studio находит их автоматически, и никакие дополнительные действия не требуются.
- Python 3.4.x и более ранние версии: символы доступны в виде скачиваемых ZIP-файлов в официальных дистрибутивах или в Enthought Canopy. После скачивания извлеките файлы в локальную папку, например в папку Symbols внутри папки Python.
Важно! Как в дополнительных сборках Python, так и в сборках 32- и 64-разрядных версий используются разные символы, поэтому нужно точно знать используемые версии. Чтобы проверить, какой интерпретатор используется, разверните в обозревателе решенийузелОкружения Python в проекте и запишите имя среды. Затем перейдите в окноСреды Python и запишите расположение установки. После этого откройте окно командной строки в этом расположении и запустите python.exe, чтобы отобразить точную версию и архитектуру — 32- или 64-разрядная.
Указание Visual Studio на символы
Если вы загрузили символы отдельно, выполните следующие шаги, чтобы Visual Studio могла распознавать их. Если символы установлены с помощью Python 3.5 или более поздней версии установщика, Visual Studio находит их автоматически.

- Выберите пункт меню Сервис>Параметры, а затем перейдите к разделу Отладка>Символы.
- На панели инструментов нажмите кнопку Добавить (выделена ниже), укажите папку, где развернуты скачанные символы (там, где находится файл python.pdb, например c:\python34\Symbols, как показано ниже), а затем нажмите кнопку ОК.
- Во время сеанса отладки Visual Studio может также запросить расположение исходного файла для интерпретатора Python. Если вы скачали исходные файлы (например, на сайте python.org/downloads/), их также можно указать.
Функции кэширования символов, отображаемые в диалоговом окне, используются для создания локального кэша символов, полученных из источника в Интернете. Эти функции не нужны для символов интерпретатора Python, так как они уже присутствуют локально. В любом случае см. раздел Указание символов и исходных файлов в отладчике Visual Studio.
Официальные дистрибутивы
| Python version | Загрузки |
|---|---|
| 3.5 и более поздние версии | Установите символы с помощью установщика Python. |
| 3.4.4 | 32-разрядная - 64-разрядная |
| 3.4.3 | 32-разрядная - 64-разрядная |
| 3.4.2 | 32-разрядная - 64-разрядная |
| 3.4.1 | 32-разрядная - 64-разрядная |
| 3.4.0 | 32-разрядная - 64-разрядная |
| 3.3.5 | 32-разрядная - 64-разрядная |
| 3.3.4 | 32-разрядная - 64-разрядная |
| 3.3.3 | 32-разрядная - 64-разрядная |
| 3.3.2 | 32-разрядная - 64-разрядная |
| 3.3.1 | 32-разрядная - 64-разрядная |
| 3.3.0 | 32-разрядная - 64-разрядная |
| 2.7.18 | 32-разрядная - 64-разрядная |
| 2.7.17 | 32-разрядная - 64-разрядная |
| 2.7.16 | 32-разрядная - 64-разрядная |
| 2.7.15 | 32-разрядная - 64-разрядная |
| 2.7.14 | 32-разрядная - 64-разрядная |
| 2.7.13 | 32-разрядная - 64-разрядная |
| 2.7.12 | 32-разрядная - 64-разрядная |
| 2.7.11 | 32-разрядная - 64-разрядная |
| 2.7.10 | 32-разрядная - 64-разрядная |
| 2.7.9 | 32-разрядная - 64-разрядная |
| 2.7.8 | 32-разрядная - 64-разрядная |
| 2.7.7 | 32-разрядная - 64-разрядная |
| 2.7.6 | 32-разрядная - 64-разрядная |
| 2.7.5 | 32-разрядная - 64-разрядная |
| 2.7.4 | 32-разрядная - 64-разрядная |
| 2.7.3 | 32-разрядная - 64-разрядная |
| 2.7.2 | 32-разрядная - 64-разрядная |
| 2.7.1 | 32-разрядная - 64-разрядная |
Enthought Canopy
Enthought Canopy предоставляет символы для своих двоичных файлов начиная с версии 1.2. Они автоматически устанавливаются вместе с дистрибутивом, но папку, в которой они размещены, нужно вручную добавить в путь к символам, как описано выше. В обычных установках Canopy для отдельных пользователей эти символы находятся в папке %UserProfile%\AppData\Local\Enthought\Canopy\User\Scripts для 64-разрядной версии и %UserProfile%\AppData\Local\Enthought\Canopy32\User\Scripts для 32-разрядной версии.
В установках Enthought Canopy 1.1 и более ранних версий, а также в дистрибутивах Enthought Python (EPD) символы для интерпретатора не предоставляются, а значит вы не сможете применить для них отладку в смешанном режиме.
Как использовать отладчик pdb для Python приложений
Разбираемся с утилитой для отладки кода на Python — pdb. В материале рассмотрены приёмы работы с отладчиком pdb, а также его основные возможности.
pdb — это встроенный отладчик для Python, который, в отличие от print() , позволяет отлаживать программу в процессе её работы.
Отладка Python-кода с помощью print
Как уже говорилось ранее, кто-то используют print() для отображения информации, которая помогает понять, что происходит в коде. Кто-то использует логи для тех же целей, но давайте не путать использование логов на продакшене и случаи, когда их используют во время поиска багов в коде и после удаляют.
Но самая большая проблема в использовании print() – это необходимость вносить изменения в код и перезапускать приложение, чтобы увидеть изменения. Давайте разберёмся, почему отладчики эффективнее.
Команды Python-отладчика
Главная задача отладчика – предоставить возможность заглянуть в процесс выполнения кода. Так, например, можно просмотреть стек вызовов, узнать значения переменных, установить брейкпоинты или запустить выполнение кода построчно. Можно провести аналогию с тем, как автомеханик заглядывает под капот автомобиля и начинает перебирать деталь за деталью, пока не найдет причину поломки.
Если вы работаете с Python, то можете не только просматривать код во время отладки, но даже запускать код из командной строки или изменять значения переменных на лету.
Python есть встроенный отладчик под названием pdb. Это простая консольная утилита, которая обладает основной функциональностью для отладки кода. Но если вы ищете что-то более продвинутое, то стоит обратить внимание на ipdb – отладчик с функциональностью из IPython.
Проще всего вызвать отладчик pdb из кода, где вы работаете:
import pdb; pdb.set_trace()
Как только интерпретатор доберётся до этой строчки, запустится отладчик и в консоли будут доступны новые команды.
list()
Эта команда покажет часть кода, на выполнении которой сейчас находится интерпретатор. Можно передать два аргумента first и last для просмотра определённого участка кода. Если указать только first, то будет выведен код вокруг искомой строки.
up(p) и down(d)
Эти команды используются для передвижения по стеку вызовов. С их помощью можно отследить, откуда была вызвана текущая функция.
step() и next()
Другая пара не менее важных команд. С их помощью можно выполнять код построчно. Единственное различие между ними в том, что next() перейдёт к следующей строке вне зависимости от вызываемых функций, а step() перейдёт в вызванную функцию, если это возможно.
break()
Эта команда позволяет создавать брейкпоинты без внесений изменений в код. Ниже разберём этот этап более детально.
Краткий список команд отладчика pdb:
- args() — выводит аргументы функции;
- continue() или (cont) — продолжит выполнение до первого брейкпоинта или до завершения программы;
- help() — выводит список доступных команд или подсказки по определённой команде;
- jump() — перепрыгивает к выполнению указанной строчки кода;
- list() — выводит исходный код программы вокруг выбранной строки;
- expression() — выводит значение выражения;
- pp — выводит значение в «красивом» виде;
- quit или exit() — отменяет выполнение программы;
- return() — завершает выполнение текущей функции.
Продолжаем изучать Python-отладчик
Рассмотренный ранее способ работы с отладчиком требовал внесения изменения в код для вывода чего-нибудь или установки брейкпоинта. Но часто при работе с внешними библиотеками появляется необходимость в их отладке. Конечно, можно открыть исходный код библиотеки и вызвать pdb .
Но теперь есть возможность запускать приложение напрямую из отладчика без внесения изменения в код. Для этого воспользуемся следующей командой:
$ python3 -m pdb
Давайте разберём на примере. Есть простое приложение, которое отслеживает рабочее время. Для её работы используется библиотека requests , отвечающая за выполнение HTTP-запросов. Попробуем прервать выполнение во время запроса. Как это сделать? Запустим приложение через отладчик и установим брейкпоинт внутри библиотеки requests .
$ python3 -m pdb run.py > /Users/. /run.py(1)() -> from TimeLog.app import run_app (Pdb) b requests/sessions.py:555 Breakpoint 1 at /. /lib/python3.6/site-packages/requests/sessions.py:555 (Pdb) c
Как можно заметить, не нужно указывать полный путь до библиотеки. Можно указать относительную ссылку от sys.path . Таким же образом можно отлаживать и ваше приложение.
Теперь куда проще отлаживать код. Не надо вносить изменения в приложение или во внешние библиотеки.
Но что делать, если в приложении происходит много вызовов, а вам надо обработать только какой-то определённый? Можно точно указать условие, при выполнении которого отладчик будет прерывать выполнение приложения.
В данном примере прерывание произойдёт только в случае, если json будет иметь в себе ключ time_entry .
$ python3 -m pdb run.py > /Users/. /run.py(1)() -> from TimeLog.app import run_app (Pdb) b requests/sessions.py:555, json is not None and 'time_entry' in json Breakpoint 1 at /Users/. /lib/python3.6/site-packages/requests/sessions.py:555 (Pdb) c
Отладка кода Django
Если вы используете Django, то скорее всего знаете, что, если в настройках значение параметра DEBUG установлено как True , то для каждого исключения будет выводиться отдельная страница с указанием типа исключения, стек вызовов, локальные переменные и т.д.
Если вы хотите прокачать отладчик, то установите django-extensions и используйте команду runserver_plus для запуска сервера. Также можно указать пароль для доступа к отладке следующей командой:
WERKZEUG_DEBUG_PIN=1234 ./manage.py runserver_plus
Прим. перев. В Werkzeug, начиная с версии 0.11, появилась возможность доступа по паролю к отладчику. Это сделано для повышения безопасности при попытках несанкционированного доступа.
Если вы используете django-extensions, то получите страницу со всеми вызовами, кодом и окном отладчика.
Процесс отладки осуществляется с помощью WSGI библиотеки Werkzeug.
Существует множество способов отладки приложений, но специализированные инструменты могут дать вам огромное преимущество по сравнению с другими разработчиками и помогут сэкономить время и силы при поиске багов. Cреды разработки предлагают широкий выбор средств отладки, подробнее о них в нашей подборке лучших IDE и редакторов кода для Python.
Установка Python в Windows 10
Язык программирования Python становится все более популярным среди начинающих и опытных разработчиков. Это гибкий и универсальный язык, он отлично подходит для написания скриптов, автоматизации, анализа данных, машинного обучения и бэкенд разработки.
В этом туториале мы установим Python в Windows.
Примечание: если вы хотите узнать, как работать с Windows PowerShell, пакетными менеджерами, а также установить и настроить Python в Windows с помощью интерфейса командной строки, то рекомендуем ознакомиться с этим мануалом.
Если вам нужен Python для веб-разработки, Microsoft рекомендует устанавливать его с помощью подсистемы Windows для Linux.
Требования
Для выполнения этого мануала вам понадобится компьютер с установленной Windows, права администратора и подключение к сети.
1: Загрузка установщика Python
Найдите стабильный релиз Python 3. В этом туториале мы будем работать с Python версии 3.10.10.
Затем нажмите на соответствующую ссылку для вашей системы, чтобы загрузить исполняемый файл : Windows Installer (64-bit) или Windows Installer (32-bit).

2: Запуск исполняемого файла установщика
После загрузки установщика дважды нажмите на файл .exe, например python-3.10.10-amd64.exe, чтобы запустить инсталлер Python.
Далее установите флажок на “Install launcher for all users checkbox”, чтобы все пользователи компьютера имели доступ к лаунчеру Python.
Установите флажок на “Add python.exe to PATH”, что позволит пользователям запускать его из командной строки.

Если вы только начинаете работать с Python и хотите поставить его со стандартными функциями, нажмите “Install Now” и перейдите к этапу 4 — Проверка установки Python. Чтобы установить дополнительные и расширенные функции, нажмите “Customize Installation”.
Дополнительные функции включают общие утилиты и ресурсы для Python, вы можете установить их все, даже если не планируете их использовать.

Выберите нужные вам из следующих опций:
- Documentation: рекомендуется выбрать
- pip: рекомендуется, если вы хотите устанавливать пакеты Python (например NumPy или pandas)
- tcl/tk and IDLE: если вы планируете использовать IDLE или работать с мануалами, для которых он нужен
- Python test suite: рекомендуется установить, если вы используете python для тестирования и обучения
- py launcher и for all users: позволяет запускать Python из командной строки
Теперь нажмите “Next”.
Откроется диалоговое окно “Advanced Options”.

Выберите параметры, которые вам нужны:
- Install for all users: рекомендуется, если на этом компьютере несколько пользователей
- Associate files with Python: эта опция связывает все типы файлов Python с лаунчером или редактором
- Create shortcuts for installed applications: создать ярлыки для приложений Python
- Add Python to environment variables: включить запуск интерпретатора Python
- Precompile standard library: не требуется, это может замедлить установку
- Download debugging symbols и Download debug binaries: рекомендуется только в том случае, если вы планируете создавать расширения на C или C++
Запишите каталог установки Python, вам понадобится обратиться к нему позже.
Чтобы начать установку, нажмите “Install”.
После завершения инсталляции появится уведомление “Setup was successful”.

3: Добавление Python в переменные среды (опционально)
Пропустите этот этап, если во время установки вы выбрали “Add Python to environment variables”.
Если вы хотите получить доступ к Python через командную строку, но не добавили Python в переменные среды во время установки, то вы можете сделать это вручную.
Прежде чем начать, найдите каталог установки Python в вашей системе. Ниже приведены примеры путей к директории по умолчанию :
- C:\Program Files\Python310: если во время установки вы выбрали “Install for all users”, то каталог будет общесистемным.
- C:\Users\8host\AppData\Local\Programs\Python\Python310: если во время инсталляции вы не выбрали “Install for all users”, то каталог будет находиться в пути пользователя Windows.
Обратите внимание: если вы поставили другую версию, то имя папки будет отличаться, но все равно будет начинаться с Python.
Перейдите в меню “Пуск” и в строке поиска введите advanced system settings.
Нажмите “View advanced system settings”.
В диалоговом окне “System Properties” перейдите на вкладку “Advanced” и нажмите “ Environment Variables ”.
Дальнейшие действия зависят от того, как вы установили Python:
- Если во время инсталляции вы выбрали “Install for all users”, выберите “Path” в списке “System Variables” и нажмите “Edit”.
- Если во время установки вы не выбрали “Install for all users”, выберите “Path” в списке “User Variables” и нажмите “Edit”.
Нажмите “New” и введите путь к директории Python, затем нажимайте “OK”, пока все диалоговые окна не будут закрыты.
4: Проверка установки Python
Проверить, что Python успешно установлен, можно через командную строку либо через приложение Integrated Development Environment (IDLE), если вы установили его.
Перейдите в “Пуск” и введите cmd в строке поиска. Нажмите “Command Prompt”.
Введите следующую команду в командной строке:
Python 3.10.10
Также вы можете проверить версию Python, для этого запустите приложение IDLE. Перейдите в меню “Пуск” и введите python в строке поиска, а затем выберите IDLE, например IDLE (Python 3.10, 64-bit).

Вы можете начать кодить на Python через IDLE или выбрать другой редактор.
Подводим итоги
Мы установили Python на компьютер под Windows, теперь у вас всё готово для начала программирования и обучения на Python. Далее вы можете написать свою первую программу.