Debug
During a debugging session , you launch your program with the debugger attached to it. The purpose of the debugger is to interfere with the program execution and provide you with the information on what’s happening under the hood. This facilitates the process of detecting and fixing bugs in your program.
There is a variety of ways how you can run a debugging session, however, for simplicity this documentation assumes that you are building and running your project from PyCharm. This is the most common case, and it has fewer limitations as compared to more advanced techniques. The procedures for attaching to a process and debugging a remote application are covered in separate sections.
Configure debugging options
Configure common debugging properties and behavior in Settings/Preferences | Build, Execution, Deployment | Debugger .
If you are new to debugging, the out-of-the-box configuration will work for you. The topics about each debugger functionality provide references and explain the related settings where applicable. If you are an advanced user and looking for some particular property, see the Debugger reference section.
Under the Build, Execution and Deployment section, select Python Debugger, and configure the Python debugger options.
Under the Project | Python Interpreter section, configure the Python packages that might be required for some debugging configurations.
Define a run/debug configuration if you are going to use a custom one. This is required if you need some arguments to be passed to the program or some special activity to be performed before launch. For more information on how to set up run/debug configurations, refer to the Run/debug configurations section. Most of the time, you don’t need this to debug a simple program that doesn’t expect arguments or have any special requirements.
General debugging procedure
There is no one-size-fits-all procedure for debugging applications. Depending on actual requirements you may have to use different actions in different order. This topic provides general guidelines, which represent typical debugging steps. The details on how and when to use particular features are provided in the respective topics.
Define where the program needs to be stopped. This is done using breakpoints. Breakpoints are special markers, which represent places and/or conditions when the debugger needs to step in and freeze the program state. A program, which has been frozen by the debugger is referred to as suspended .
The alternative to using breakpoints is manually suspending the program at an arbitrary moment, however this method imposes some limitations on the debugger functionality and doesn’t allow for much precision as to when to suspend the program.
Just right-click any line in the editor and select the Debug <filename> command from the context menu.
After the program has been suspended, use the debugger to get the information about the state of the program and how it changes during running.
The debugger provides you with the information about variable values, the current state of the threads, breakdown of objects that are currently in the heap, and so on. It also allows you to test your program in various conditions by throwing exceptions (for example, to check how they are handled) or running arbitrary code right in the middle of the program execution.
While these tools let you examine the program state at a particular instant, the stepping feature gives you the control over step-by-step execution of the program. By combining the tools you can deduce where the bug is coming from and test your program for robustness.
Работа в IDE PyCharm (FAQ) + полезные фишки
T witter, Pinterest, HP, Symantec, Groupon. Как думаете, что у них общего ? Не сомневаюсь, ответ вам известен. Но помимо того, что это крупнейшие на мировом IT-рынке компании, есть и более специфичная деталь: те их сотрудники, кто программирует на языке Python, пишут свой код в среде разработки PyCharm .
Талантливые ребята из JetBrains разработали одну из наиболее используемых IDE в мире для этого языка программирования.
В начале 2019 года компания JetBrains опросила почти 7000 разработчиков. 42% опрошенных, которые пишут на Python, выбрали PyCharm как основную IDE для своей работы.
PyCharm кроссплатформенна и совместима с Windows, Linux и MacOS. Она поддерживает, как вторую, так и третью версию Питона и, кроме всего прочего, имеет красивый и функциональный UI.
Инструменты и функции, предоставляемые этой интегрированной средой, помогают Python-программистам быстро и эффективно писать код, синхронизироваться с системой контроля версий, использовать фреймворки и плагины, позволяя при этом настроить интерфейс так, как удобно самому пользователю и даже дают возможность дополнительного расширения IDE.
В PyCharm, конечно же, есть встроенный анализатор кода, который действительно помогает при его написании. Благодаря анализатору можно весьма комфортно перемещаться по проекту, использовать быстрый поиск, а также исправлять ошибки, которые PyCharm любезно подсвечивает и подробно описывает.
Тут реализованы системы автодополнения и контроля качества кода в соответствии со стандартом PEP8. Всё для того, чтобы сделать текст ваших программ красивее, чище и структурированнее.
В интегрированной среде от JetBrains поддерживаются основные современные Python-фреймворки для веб-разработки, в ней вы сможете работать с Jupyter-notebook, подключать Anaconda, а также прочие библиотеки для научных вычислений и Data Science. Но, как говорится — "И это ещё не всё!". Помимо, собственно, питона, PyCharm отлично ладит и с другими языками программирования — JS, TypeScript-а, SQL или шаблонизаторами.
Системные требования
Официальные системные требования последней версии PyCharm выглядят так:
- Windows — Microsoft Windows 10 64-битили Windows 8 64-бит;
- macOS — macOS 10.13 или выше;
- Linux — среда GNOME или KDE.
RAM: не менее 2 ГБ, но рекомендуется 8 ГБ;
Место на диске: установка потребует 2,5 ГБ, рекомендуется использование SSD;
Разрешение экрана : не менее 1024×768 пикселей;
Python: Python 2.7, Python 3.5 или более поздняя версия;
При этом разработчики обращают внимание пользователей macOS и Linux на то, что JBR 11 поставляется в комплекте с PyCharm, и дополнительно устанавливать Java им не нужно.
В самих системных требованиях нет ничего особенного, однако хочется отметить, что IDE прекрасно себя чувствует и на Windows 7, а к рекомендациям по поводу 8 ГБ оперативной памяти и использования SSD стоит тщательным образом прислушаться, не прогадаете .
Как установить
Процесс установки вкратце описан на официальном сайте для каждой из поддерживаемых ОС:
На Windows
- Запускаете файл pycharm.exe .
- Следуете инструкциям инсталл-мастера.
- Выбираете нужные параметры установки.
- Готово.
На Mac OS
- Сперва следует скачать файл pycharm.dmg .
- Затем смонтировать диск в вашей системе.
- И, наконец, необходимо скопировать PyCharm в Applications.
На Linux
- Файл pycharm.tar.gz нужно скопировать в выбранную папку.
- Обязательно убедитесь, что у вас есть права доступа RW для данного каталога.
- Распакуйте pycharm.tar.gz используя команду: tar -xzf pycharm-2020.1.2.tar.gz
- Будьте внимательны: архив НЕЛЬЗЯ РАСПАКОВЫВАТЬ в папку с существующей инсталляцией.
- Теперь можно запустить pycharm.sh из каталога bin .
Подготовка к работе и настройка
Перед тем, как приступить к разработке в PyCharm, вам нужно создать проект, поскольку все дальнейшие манипуляции будут происходить именно в нём и на его основе.
Чтобы начать новый проект, нажмите New Project и придумайте ему имя. Теперь можно приступить к настройке.
Настройки интерфейса
Несмотря на то, что разработчики из JetBrains начинали свой путь в России, смена языка интерфейса в среде разработки не предусмотрена, поэтому к вашим услугам будет лишь родной язык Уильяма Шекспира.
Зато вы можете изменить сами шрифты и их размеры, пройдя по пути:
File -> Settings -> editor -> font
Поменять цветовую схему UI:
File -> Settings -> editor -> color scheme
И сконфигурировать множество других аспектов, вроде общих настроек, конфигураций прокрутки, настроек цвета для каждого доступного языка и так далее. Для всего этого есть редактор:
file -> settings -> editor
Настройка интерпретатора
Скачать интерпретатор вы можете с официального сайта Python . Если в ваши планы не входит работа с библиотеками, которые есть только во второй версии языка, то стоит качать последний релиз Python 3.
Для использования установленного интерпретатора, выберите его в настройках:
File -> Settings -> Project:<name> -> Project Interpreter
Если PyСharm не видит интерпретатор, попробуйте добавить его вручную. Для этого:
- Нажмите на шестеренку в верхнем правом углу, выберите " Add.. ".
- Далее выберите " System Interpreter ";
- Нажмите на 3 точки " . " справа от поля в выбором интерпретатора;
- Укажите путь до интерпретатора.
Настройка виртуального окружения
Если по долгу программистской службы вам приходится работать с несколькими проектами, то определенно не помешает настройка и подключение виртуального окружения.
Venv — это, грубо говоря, директория, содержащая ссылку на интерпретатор и набор установленных библиотек. Виртуальное окружение “изолирует” ваши проекты, и помогает, в частности, не запутаться в разных версиях библиотек, адаптированных для каждого из них по отдельности.
Если вы настроили виртуальное окружение заранее, PyCharm покажет уведомление, в котором предложит использовать его в проекте. Если уведомления нет, вы всегда можете настроить и изменить его вручную в настройках:
File -> Settings -> Project:<name> -> Project Interpreter
Также в этом меню можно создать виртуальные окружения с нуля. Для этого:
- Нажмите на шестеренку в верхнем правом углу, выберите " Add.. ".
- Выберите " Virual Enviroment " и задайте параметры.
Venv создано и готово к работе .
Окружение Pipenv создается аналогичным образом
Запуск скриптов в консоли
Чтобы запустить код в PyCharm, нужно выбрать интерпретатор в настройках (как это сделать я писал чуть выше).
Также, перед запуском своего кода в PyCharm необходимо добавить конфигурацию (чтобы IDE понимал, какой файл ему запускать и по каким правилам). Изначально, если проект новый, конфигурации нет, и кнопка запуска не активна.
Чтобы запустить код в новом проекте, зайдите в
или выполните комбинацию:
Alt + Shift + F10
Откроется диалоговое окно в выбором файла, который необходимо запустить.
После запуска, откроется терминал, в котором вы увидите результат выполнения своего скрипта и сообщение о том, что процесс завершился с кодом 0 (0 означает успешное завершение).
Далее, когда конфигурация создана и сохранена, запускать свой код на выполнения можно комбинацией:
☝️ Если скрипт не запускается, возможно вы не сохранили конфигурацию или PyCharm не видит интерпретатор. Настроить или создать конфигурацию можно в меню " Edit Configurations.. ", которое находится сверху справа, около кнопки "Run".
Есть еще один способ запуска кода:
- Внизу окна программы кликните на " Terminal ".
- Напишите в терминале python <name>.py или python3 <name>.py .
♂️ В целях обучение, вам может понадобиться быстро писать и проверять Python-инструкции. Для этого в PyCharm-е реализован интерактивный режим (по аналогии с IDLE ). Чтобы его вызвать, достаточно нажать на " Python Console " внизу слева.
Отладчик (debugger) в Pycharm
Отладка — чрезвычайно полезный инструмент. С помощью него можно пошагово исполнять программный код. Интерпретатор переходит в особый режим, фиксируя на каждом этапе выполнения текущее состояние программы. Т.е. для каждой строки кода вам будет представлен мини-отчёт, в котором можно посмотреть актуальные значения всех переменных и проследить таким образом весь процесс их изменения.
Находясь в руках опытного разработчика, отладчик сокращает время поиска ошибок на порядки.
Для старта отладки, нужно поставить так называемую точку останова. Это красный кружок напротив строки кода.
Вы можете установить её где захотите, но чаще всего точку следует ставить там, где интерпретатор увидел ошибку.
Для запуска кода в режиме отладки нажмите на значок в "жука" в левом верхнем углу:
Или выполните комбинацию:
Теперь, нажимая F8 , можно последовательно шагать по строчкам кода и смотреть текущее состояние всей программы.
"Шагать" можно и через F7 , но в таком случае дебаггер будет совершать "Шаг с заходом". Т.е. при встрече вызова функции он будет заходить в её описание и последовательно проходить по инструкциям.
Все варианты навигации в режиме отладки можно посмотреть в окне "Debugger":
Для каждой кнопки существует свой hotkey — чтобы увидеть его, достаточно навести курсор на нужную кнопку.
Deploy на удаленный хост
Развернуть и отправить код на сервер возможно прямиком из PyCharm.
Инструмент не доступен в бесплатной комьюнити-версии
Чтобы добавить удалённый сервер, первым делом перейдём в:
Tools -> Deployment -> Configuration
Здесь сначала вводим имя, а затем настраиваем данные сервера. Потом вводим имя и пароль пользователя и проверяем соединение при помощи кнопки Test Connection .
Переключаемся на следующую вкладку под названием Mappings . Мапы здесь — это соответствия между путями на вашем компьютере и путями на сервере. Производим и применяем настройки.
Теперь можно производить deploy:
Tools -> Deployment -> Upload to <your_host_name>
Лайфхак : для удобной работы можно настроить автоматический деплой на удаленный сервер после каждого "сохранения". Для этого перейдите в Tools -> Deployment -> Options и выберите On explicit save action (Ctrl + S) .
Макросы
Макросы, как и многие другие вещи нужны исключительно для облегчения нашей с вами жизни. Они позволяют автоматизировать ряд повторяющихся процедур, которые вы чаще всего выполняете во время написания кода. Вы можете записывать, редактировать и воспроизводить макросы, назначать им ярлыки и даже делиться ими.
Чтобы создать или настроить свой собственный макрос, вам нужно выбрать:
Edit -> Macros -> Start Macro Recording
После записи макроса, нажмите Stop Macro Recording .
Полезные хоткеи и фишки
⚡ Как поменять цвет консоли в pycharm. Поменять цвет консольного бэкграунда или шрифтов предельно просто: для этого нужно всего лишь зайти в настройки цветовой схемы и изменить их так, как того пожелает ваш внутренний дизайнер:
File -> Settings -> Editor -> Color Scheme
⚡ Поиск по всему проекту.
- Для поиска по коду во всем проекта, выполните комбинацию Ctrl + Shift + F .
- Для поиска всего и вся во всём проекте дважды нажимаем клавишу Shift .
⚡ Хоткеи по запуску и дебаггингу. С помощью комбинации клавиш Shift + F10 можно запустить ваш проект, а нажав Shift + F9 — начать его отладку.
⚡ Закомментировать сразу несколько строк. Комментирование кода ещё никогда не было таким простым: вы мышкой выделяете нужные строки, а затем нажимаете Ctrl + / .
Повторив то же самое действие на том же самом месте, вы выполните раскомментирование кода.
- Отступ — Tab .
- Для нескольких строк выделите нужные строки и нажмите Tab .
- Для обратного отступа (отступа в левую сторону) — Shift + Tab .
⚡ Некоторые горячие клавиши.
- Ctrl + Alt + L — автоформатирование кода по PEP 8.
- Ctr + Z — отмена последнего выполненного действия.
- Ctr + Up/Down — прокрутка без изменения позиции курсора.
- Ctr + D — дублировать строку.
- Tab / Shift + Tab — увеличить / уменьшить отступ.
- Ctr + Space — выводит предложения по автозаполнению.
ТОП 7 полезных плагинов для Pycharm
Меню установки плагинов находится в:
File -> Settings -> Plugins
Для установки плагина достаточно написать его название в строке поиска, найти плагин и нажать " Install ".
⭐ Вот список полезных плагинов, которые стоит установить:
- Highlight Bracket Pair ( описание ) — плагин позволяет не запутаться в излюбленном занятии программистов — поиске соответствия между открывающими и закрывающими скобками.
- Grep Console ( описание ) — расширение функционала стандартной консоли PyCharm — изменение цвета для разного типа сообщений, вкладки в консоли, аналог grep для вывода и т.д.
- Pylint ( описание ) — Python линтер. После установки появится меню "Pylint" в нижнем левом углу. Для работы плагина необходимо установить модуль pylint ( python -m pip install pylint или python3 -m pip install pylint ), и в настройках PyCharm указать путь до него (в Windows он обычно лежит в папке C:\<python_path>\Scripts , а в Linux путь до pylint можно узнать с помощью which pylint ).
- DeepBugs for Python — ищет потенциальные баги и проблемы, связанные с качеством кода используя модели машинного обучения.
Другие полезные плагины:
- Python Smart Execute ( описание ) — комбинация Alt + Shift + A копирует выделенный код в Python-консоль и выполняет его.
- MyPy ( описание ) — плагин для проверки типов (type hinting) и анализатор исходного кода для Python. После установки появится меню "MyPy" в нижнем левом углу.
- CodeGlance ( описание ) — добавляет мини-карту (minimap) кода в окне редактора справа.
Что делать, если PyCharm не видит модули Python?
Если у вас возникла подобная проблема, то в первую очередь стоит проверить настройки интерпретатора.
Вариант №1 — сброс настроек и выборе новой версии интерпретатора. Настройки находятся тут:
Settings -> Project:<project_name> -> Project Interpreter
Вариант №2 — По умолчанию PyCharm ищет модули начиная от корня проекта. Подскажите PyCharm, где находится директория с вашими модулями. Для этого в проводнике слева щелкните по директории (правой кнопкой мыши), и в контекстном меню выберите Mark Directory As -> Sources Root .
Name already in use
cs3600-pycharm-debugging / pycharm-setup-and-debugging.md
- Go to file T
- Go to line L
- Copy path
- Copy permalink
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents
Copy raw contents
Copy raw contents
Debugging with PyCharm
This tutorial will walk you through setting up PyCharm and using the built-in debugger. Two main reasons for using PyCharm over a text editor:
- Dynamic error checking and warning messages
- A built-in debugger
We will go over the debugger towards the end of the tutorial. If you already have PyCharm set up and working, you can skip right to that part.
Note: Some of the pictures may look a little different, we used an Early Access Preview version of PyCharm.
JetBrains is a company that creates development tools for programmers. A full list of IDEs and tools can be found here. For our course, we will be using their Python IDE called PyCharm. If you used IntelliJ for CS 1332, this should feel very similar.
You can download PyCharm here. There are two different versions:
- Community: Free for everyone to use and has all the features needed for our course. We recommend this version.
- Professional: Developed for corporations, has lots of enterprise-level features. Requires a license.
Get a Student Account (Optional)
JetBrains offers all their professional tools for free to students! You can create a student account here. We won’t go into much more detail on this, as this is not a required step.
After downloading and installing PyCharm, run the application. You will have to choose a few options for the initial setup, but this should only take a few seconds.
We recommend that you stick to all the default settings. Feel free to change the theme: Dracula looks similar to Atom and Sublime Text.
Opening Projects in PyCharm
This is pretty self explanatory. Make sure the CS 3600 project is downloaded and you know where it is.
Click on the Open button in the welcome screen, select the project folder in the navigation view, and click Ok .
Setting the Python Environment
Usually, PyCharm is able to find your default Python installation path. However, if your laptop is set up incorrectly, you will need to explicitly specify the path. Follow these steps to check:
- File -> Settings
- Select Project -> Project Interpreter on the left of the settings menu
- Make sure Python 2.7.* is selected in the dropdown menu (the * can be any number)
If you see python in the dropdown menu, you can skip to the next section. Otherwise:
- Select Show All in the dropdown menu.
- Click on the green plus button.
- Add the directory to python.exe . Depending on your operating system, you might have to Google where you can find the executable on your computer. For Windows users, it’s in the Python2.7 folder either in C:/Program Files or C:/Program Files (x86) .
If you have trouble with these steps, please check stackoverflow or ask on piazza!
Running the Autograder
Instead of using the terminal to run the autograder, we will create a Run Configuration . With this, you will be able to re-run the command (and later use the debugger) without having to re-type the entire command.
Running python autograder.py
We wish to run the autograder with no extra parameters (no -q q1 ). Here is how we can do that:
- Open autograder.py by double-clicking on it on the Project Menu toward the left
- Scroll down until you see:
Click the green run button to left, then press Run . This will run the autograder, which is the equivalent of typing in python autograder.py into the terminal.
Notice how this has created a Run Configuration on the top left. Any files you run will show up in this dropdown menu. To re-run any of these, you can select it in the menu and press on the green arrow to the right.
Running the autograder with parameters
We can edit the Run Configuration to pass in parameters to the autograder. For example, we can run python pacman.py -q q1 with the following:
- Click on the dropdown menu in the top right, select Edit Configurations
- In the pop-up menu, select the autograder run configuration from before. Click on the Copy button on the top (should be to the right of a red minus).
- We have now made a copy of the run configuration that we can change. In the Name field, type in something descriptive, like «autograder q1».
- In the script parameters field, type in the parameters like «-q q1».
- Press Ok
Now when you run «autograder q1», it will run the script with the specified parameters.
Running other files
This same method can be extended to run other files. For example, to run python pacman.py -l mediumMaze -p SearchAgent -a fn=bfs , just make a new run configuration for «pacman.py» with script parameters «-l mediumMaze -p SearchAgent -a fn=bfs».
Using the Debugger
The main reason we recommend PyCharm is for the debugger! Before continuing, double check that you understand the Running the Autograder section above. You will need the autograder Run Configuration to run the debugger.
You might be wondering what the debugger is. Basically, it is a tool that lets you set specific Breakpoints where your program will pause execution. Everytime the program pauses, you can:
- Check the values assigned to all your variables
- Step into function calls and check what they return
- Make changes to the code while still «running» the program
- And a lot more.
To use the debugger, we need to set Breakpoints , which are lines of code where the program will pause execution every time it hits that line. To set a breakpoint, single-click on the bar to the right of the line numbers. This creates a red circle, which is a breakpoint. Later, you can click on it again to remove it.
Running the debugger
Go ahead and click on the debug button (to the right of the run button at the top). Make sure you selected a Run Configuration that will actually get to that line of code, such as the autograder.
As you can see in the gif, the program paused at that line. The line of code has not been executed yet, and you can view all the variables currently assigned before executing the line. Note that objects are nested, so you can expand each object to see what attributes it has.
This is extremely useful for debugging, certainly better than printing out all your variables!
We can do much more than just pause at a specific line. Here are some more useful features of the debugger:
Resume program execution
After pausing the program at a breakpoint, you can have it continue like normal until it reaches another breakpoint. This breakpoint could be the same one being called in a loop, or a completely different one.
Runs the next line of code in the program and then pauses again. It will just go line by line. Note that if you have any function calls, it won’t go into the function call stack.
Runs the next line of code in a function call. Basically, it will step into any function that you are currently paused at, unlike step over.
Of course, make sure to hit the stop button after you’re done with the debugger.
We’ll let you play around with the debugger on your code. Try it out!
Other Protips (Optional)
Don’t run your code in debugger mode if you aren’t actually debugging. It’s a lot slower.
To show line numbers, right-click on the bar where you set debug breakpoints, then select the show line numbers option.
Version Control Integration
PyCharm has git and GitHub integration built right into it. You can find out more about it here. No more complaining that your laptop crashed and you lost all your work please.
Of course, we don’t want you guys sharing code over GitHub, so please make them private repos. Note that posting your code publicly is an honor code violation. You can set up the repoistory on Gatech’s GitHub, as that comes with unlimited free private repos.
You can get unlimited free private repos on the regular GitHub site if you are a student (normally it costs $7 / month for 5 private repos). You need to sign up for a GitHub Student Account. It comes with a bunch of other free products not needed, such as AWS credit, custom domain names, continuous integration build hours, cloud-based solutions, etc.