---
tags: Hack Week, IDE, 2022
---
[](https://hackmd.io/-MvWnXf2S8OrKhreH1Wzgg)
[PyCharm]: https://www.jetbrains.com/pycharm/
# 2022 Hack Week: IDE PyCharm
This file covers the PyCharm IDE overview discussed on Day 1 of the [2022 Plasma Hack Week](https://hack.plasmapy.org/2022/about).
## What is PyCharm
[PyCharm] is an IDE distributed by JetBrains that focuses around code development for Python projects. Even though PyCharm is Python centric, it does support development of many languages.
## Download and Install
PyCharm provides several versions. There is a free open-source **Community** version and a pay-for **Professional** version. Both have an installer that can be [**downloaded**](https://www.jetbrains.com/pycharm/download/#section=mac) directly from JetBrains. The Community version can also be found on GitHub (https://github.com/JetBrains/intellij-community/tree/master/python).
In additional to the Community and Professional versions, JetBrains provides an **Educational** version. This gives students and teachers free access to many of the Professional features. One can request an educational license with the following link: https://www.jetbrains.com/community/education/.
## Useful Tutorials and Demos
* PyCharm's [YouTube Tour](https://youtu.be/BPC-bGdBSM8)
* JetBrain's PyCharm [YouTube playlist](https://youtube.com/playlist?list=PLQ176FUIyIUbDwdvWZNuB7FrCc6hHregy)
## PyCharm Walkthrough
1. Open `plasmapy` in PyCharm
2. Highlight Project Tab
* IDE is package development centric, not script centric
* There is a [LightEdit mode](https://www.jetbrains.com/help/pycharm/lightedit-mode.html) for editing files without creating a project
3. PyCharm Settings: Project Interpreter
* Defines Python environment for project
* Can create virtual environments
* can define several environments
* selectable in bottom right cornert
2. Terminal integration
* utilizes project environment
* you can select which terminal flavor you like
4. Python console integration
* IPython console
* utilizes project environment
* current project is appended to the PYTHONPATH
5. Highlight Code Editor
* color highlighting
* line numbering and rules
* splitting windows
* code inspection and linters
* use `plasmapy/formulary/speeds.py` as example
* PEP8
* can be configured in settings
* highlight gutter indicators/warnings
5. version control (`git`) integration
* **Will cover in more detail on Day 2.**
* can utilize many version control systems, but we'll focus on `git`
* `git` dropdown has many of the basic git commands
* `git` tab
* view local changes
* view git history
7. GitHub integration
* **Will cover in more detail on Day 2.**
* go to `settings` -> `Version Control` -> `GitHub`
* allows you to communicat directly with GitHub
* View Pull Request
* Push and Pull changes
9. Debugger and Test runners
* builtin debugging
* test runners for both `unittests` and `pytest`
* support for code coverage
* can run debugger from Python Consol and from tests
11. Extendable with Plugins
* `Settings` -> `Plugins`