Python Code Editor

Intelligent Code Editor

Syntax highlighting — customizable editor colors for Python code and Django templates. Several predefined color themes.

Auto-Indentation and code formatting — automatic indents inserting on new line. Indents verification and code re-formatting according to project code-style settings.

Code completion for keywords, classes, variables, etc. as you type or via Ctrl-Space. Editor suggestions are context-aware and suggest most appropriate options.

Line and block commenting — single keystroke to comment/uncomment current line or selection

On-the-fly error highlighting — errors are shown as you type. Integrated spell-checker verifies your identifiers and comments for misspellings.

Code snippets — save time using advanced customizable and parametrized code templates and snippets.

Code folding, auto-insertion of braces, brackets & quotes, Matching brace/bracket highlighting, etc.

Easy Code Navigation & Search

Go to class / file / symbol — crucial operations for fast project navigation. Use wild-cards and abbreviations to locate needed items faster.

Go to declaration — when invoked from a reference, opens the corresponding file and navigates to the symbol declaration.

Find Usages — helps you locate usages of any symbol (e.g., class, method, field, etc.) in your code, in the current file or in the whole project.

Code Analysis

Numerous code inspections verify Python code as you type and also allow inspecting the whole project for possible errors or code smells.

Quick-fixes for most inspections make it easy to fix or improve the code instantly. Alt+Enter shows appropriate options for each inspection.

Configurable language injections

Language injections allow you to natively edit non-Python code, which is embedded into string literals, with code completion, error-highlighting, and other coding assistance features.

Python Refactoring

Rename refactoring allows to perform global code changes safely and instantly. Local changes within a file are performed in-place. Refactorings work in plain Python and Django projects.

Use Introduce Variable/Field/Constant and Inline Local for improving the code structure within a method, Extract Method to break up longer methods, Extract Superclass, Push Up, Pull Down and Move to move the methods and classes.


Quick definition / documentation view — see the object definition or documentation in-place without losing your context.

External documentation view in browser for Python standard library, Django and Google App Engine (Shift-F1).

Epydoc and reStructuredText markup highlighting and code completion for tags and tag parameters. Docstrings and the code matching verification, and autoupdate on refactoring.

Automatic generation of a docstring stub (either Epydoc or reStructuredText) for a method.

Django IDE + JavaScript, HTML

Django Templates Editing

While working with Django projects you can use all standard editor actions provided by JetBrains IDEs and rely on appropriate assistance, starting from syntax/error highlighting to advanced refactorings.

Code completion works for Django tags, filters, template variables and parameters passed from view methods.

Quick documentation lookup shows information for tags and filters.

Inspections verify you code for duplicate block names, tags open-close structure, unresolved template references, etc.

Time-saving editor actions include: automatic code formatting and indentation, code snippets/live templates, brackets and quotes autoclosing, code commenting and "Surround with tag" options.

Django-Specific Code and Files

Code insight for Django models and fields: navigation, autocompletion with type inference.

Special coding assistance within standard files: and files, folders, view methods, templates navigation and autocompletion, regexp injection and highlighting. Intentions to create view and template from usage.

Internationalization (i18n) options allow quick extraction of strings to resource bundles with automatic code update. Easy navigation is available between string references and its value.

Other Templating Languages

Mako and Jinja2 can also be used for any project with syntax highlighting, code completion, formatting, quick navigation and Structure view.

Django Templates Debugging

PyCharm allows setting breakpoints inside Django templates. Stop your web application right where you need,
for a detailed code step through.

See also: JavaScript Editor, HTML/CSS Editor

CoffeeScript & TypeScript

PyCharm offers a powerful CoffeeScript & TypeScript editor with features like syntax highlighting with error checking, code completion and coding assistance, code formatting and quick navigation.

Advanced features are also available and include code inspections, usages search and refactorings.

JavaScript Debugger

The JavaScript debugger (in Mozilla Firefox and Google Chrome browsers) is included into PyCharm and is integrated with the Django server run configuration.

Run, Debug, Test & Profile

Run Your Code

You can run any Python file. Just right-click what you need to run and select 'Run <your script>'.

You can run REPL or Django consoles in PyCharm that offer many advantages over the standard ones: on-the-fly syntax check with inspections, braces and quotes matching and pairs autoinsertion and of course code completion. Both consoles are easy to locate under Tools menu.

You can execute tasks from your file. Use 'Run task' action, enter a task name or event part of it and select the one you need. Debugger is started the same way.

Environment Management

PyCharm allows easily configure the required Python environment for your project, be it local, remote interpreter or a virtualenv.

Python/Django Debugger

Smart Step Into action in the debugger, allows you to select a call to step into, when the current line contains multiple method calls.

PyCharm can debug applications that spawn multiple Python processes (e.g. Django applications that don't run in --no-reload mode, or applications using many other Web frameworks that use a similar approach to code auto-reloading).

Every script/test or debugger execution creates a special 'Run/Debug Configuration' that can be edited and used later. Run/Debug Configurations can be shared with project settings for use by the whole team.

Create quickly using a special dialog and easily launch tasks defined inside

Test Your Code

PyCharm IDE lets you run your tests: a test file, a single test class, a method, or all tests in a folder. You can observe results in graphical test runner with execution statistics and simple test-code navigation.

The test runner also works for Django applications, with support for unit tests, doctests, nose, and attest.

Python Profiler

Take full control of your code with the Python Profiler Integration, supporting yappi and cProfile. Discover captured snapshots and detailed statistics with the colored function call graph.

Supported Environments

Python 2.x or 3.x, Jython, IronPython and PyPy.

Google App Engine & other Frameworks & Libraries

Python Development for GAE

Develop applications for Google App Engine and delegate routine deployment tasks to the IDE. Create your app, run it and deploy it to the App Engine server without leaving PyCharm. Enjoy code completion and error highlighting in GQL queries and in YAML configuration files.


PyCharm provides smart
code insight for the SQLAlchemy library, resulting in intelligent code suggestions and automatic completion. SQLAlchemy diagrams complement the support of this handy SQL toolkit by visualizing your data structure.


PyCharm takes care of all your
routine tasks so you can enjoy developing with your framework of choice. Naturally, we provide Pyramid-aware code completion, automatic setup for run configurations, code navigation, and more. Chameleon, a template language commonly used for Pyramid projects, is also supported.


PyCharm recognizes existing web2py projects and can automatically create new ones. It understands the web2py internal template language, offers framework-specific code completion, helps you easily navigate around your project, and does all the routine stuff. All that's left for you is to simply enjoy developing with web2py.


PyCharm provides Cython coding support with:

  • Syntax highlighting, error checking and code formatting
  • Context-sensitive code completion for Cython keywords, fields of structs, and attributes of extension types
  • Code navigation and Structure view
  • Quick Usages Search and refactoring tools
  • Code inspections for Cython such as unresolved references detection.

You can set up an external tool for compiling your Cython code from the IDE.

Python Desktop Development

Desktop development support with wxPython, PyQt, PyGTK

Integrated Development Environment

Embedded local terminal

This feature is what makes our Python Development Environment complete. No need to leave the IDE as you develop. Local terminal is available for any supported OS.

Version Control Integration

The following VCS are supported out of the box: Mercurial, Subversion, Git, CVS, Perforce.

A unified UI for common tasks also includes support of features specific for each VCS.

All the tedious tasks (adding, removing, deleting files) are performed automatically. A built-in visual merge tool resolves all conflicts in a quick and intuitive manner. The changes made locally are highlighted as you type in the editor gutter, providing intuitive navigation and a 2-click rollback for individual changes.

The following features are available no matter which VCS you use:

  • Integrated changelists — group your changes into multiple change lists for better organization
  • Shelved changes — set aside some changes to restore them later
  • Repository changes view — see what has been committed by other team members
  • Incoming changes view — see the code changes not yet integrated into your local copy
  • Outdated changes notification — get warned that a file you are working with has been changed after your last sync

Keyboard Schemes / Vim Emulation

For a higher productivity PyCharm encourages you to use the keyboard for all your tasks.

For an easier start with PyCharm, try the keyboard hotkeys you already know well. PyCharm's keyboard layout is designed with your convenience in mind, but you can always choose specific layouts such as those from Eclipse or Visual Studio, or just create your own.

Additionally, PyCharm offers (via a plugin) a powerful VI/Vim emulation mode giving you the best of both worlds.

Customizable UI

Are there any software developers who don't like to tweak their tools? We have yet to meet one, so we've made PyCharm UI customization a breeze. Have plenty of screen estate? Turn the toolbars and pin the tool windows to always show. Coding on a 13" MacBook Air? Leave only editor displayed and show the rest only when needed.

Editor Color Themes

UI customizations would be incomplete without an ability to configure the editor itself. PyCharm comes with several editor color schemes bundled and allows creating own custom schemes or modifying the existing ones.

Issue Trackers Integration

When your ToDo list is in an issue tracking system, you can configure PyCharm to work with the issues without switching from the IDE. Just specify your issue tracker server and:

  • Select tasks to work on from the list defined by your filter
  • Automatically group VCS changes under a corresponding task
  • Commit to VCS with task name/ID pre-filled for you
  • Switch between tasks keeping IDE context saved (open editor tabs, breakpoints, etc.)

PyCharm supports the following bug tracking systems: Atlassian JIRA, JetBrains YouTrack, Lighthouse, Pivotal Tracker, GitHub, Redmine, Trac.


More than 10 years of IntelliJ platform development gives PyCharm 50+ IDE plugins of different nature, including support for additional VCS, integrations with different tools and frameworks, and editor enhancements such as Vim emulation.

PyCharm plugins can be browsed and managed from the Plugin Manager in IDE Settings.

PyCharm Plugin Repository web site.

Download PyCharm