Coding Assistance
Code faster and with more pleasure in a smart and configurable editor with code completion, snippets,
code folding and split windows support.
Code Analysis
Take advantage of on-the-fly code syntax, error highlighting, intelligent inspections and one-click
quick-fix suggestions to make code better.
Project Navigation
Instantly navigate from one file to another, from method to its declaration or usages, and through
classes hierarchy. Learn keyboard shortcuts to be even more productive.
Python Refactoring
Make project-wide code changes painlessly with rename, extract
method/superclass/field/variable/constant/ parameter, move, pull
up/push down and change method signature refactorings.
Web Development with Django
Rapid Web development with Django framework backed up with
excellent HTML, CSS and JavaScript editors. Also with CoffeeScript, Mako
and Jinja2.
Google App Engine Support
Develop applications for Google App Engine and delegate routine deployment tasks to the IDE.
Version Control Integration
Check-in, check-out, view diffs, merge — all in the unified VCS user interface for Mercurial,
Subversion, Git, Perforce and other SCMs.
Integrated Unit Testing
Run a test file, a single test class, a method, or all tests
in a folder. Observe results in graphical test runner with execution
statistics.
Graphical Debugger
Fine-tune Python or Django applications and unit tests using a full-featured debugger with
breakpoints, stepping, frames view, watches & evaluate expressions.
Customizable & Extensible
NetBeans, Eclipse & Emacs keyboard schemes, TextMate Bundles support
and Vi/Vim emulation plugin. Highly customizable workspace
layout.
PyCharm Features
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.
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.
Documentation
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: urls.py
and settings.py
:
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.
CoffeeScript
PyCharm offers a powerful CoffeeScript 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
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 Pyhon 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
Create setup.py quickly using a special dialog and easily launch tasks defined inside 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 and attest.
Code Coverage
Code coverage analysis is added based on Ned Batchelder's coverage.py tool.
Supported Environments
Python 2.x or 3.x, Jython, IronPython and PyPy.
Google App Engine, etc.
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.
Cython
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
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.
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.