Easy Code Navigation & Search

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.

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.

JavaScript Debugger

Run, Debug, Test

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 manage.py file. Use 'Run manage.py 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.

Setup.py

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.

Code Coverage

Supported Environments

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.

Pyramid

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.

web2py

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.

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.

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:

Plugins

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.