PyCharm is an
integrated development environment
An integrated development environment (IDE) is a Application software, software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, an ...
(IDE) used for programming in
Python. It provides code analysis, a graphical debugger, an integrated unit tester, integration with
version control systems, and supports web development with
Django. PyCharm is developed by the
Czech company
JetBrains and built on their IntelliJ platform.
It is
cross-platform
Within computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several Computing platform, computing platforms. Some ...
, working on
Microsoft Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
,
macOS
macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
, and
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
. PyCharm has a Professional Edition, released under a
proprietary license and a Community Edition released under the
Apache License.
[PyCharm 3.0 community edition source code now available](_blank)
Jet Brains. October 2013. PyCharm Community Edition is less extensive than the Professional Edition.
Features
In both versions
*Python coding assistance and
analysis, with
code completion,
syntax
In linguistics, syntax ( ) is the study of how words and morphemes combine to form larger units such as phrases and sentences. Central concerns of syntax include word order, grammatical relations, hierarchical sentence structure (constituenc ...
and error highlighting,
linter integration, and quick fixes
*Project and code navigation: specialized project views, file structure views and quick jumping between files,
classes,
methods and usages
*Python
code refactoring
In computer programming and software design, code refactoring is the process of restructuring existing source code—changing the '' factoring''—without changing its external behavior. Refactoring is intended to improve the design, structure, ...
: including rename, update function signature, extract method, introduce variable, introduce constant, pull up, push down and others
*Integrated Python
debugger
*Integrated
unit testing
Unit testing, component or module testing, is a form of software testing by which isolated source code is tested to validate expected behavior.
Unit testing describes tests that are run at the unit-level to contrast testing at the Integration ...
, with line-by-line
coverage
*Virtual environment, build tool and package management
*Embedded
terminal and Python console
*Docker support
*
HTML
Hypertext Markup Language (HTML) is the standard markup language for documents designed to be displayed in a web browser. It defines the content and structure of web content. It is often assisted by technologies such as Cascading Style Sheets ( ...
,
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
,
JSON
JSON (JavaScript Object Notation, pronounced or ) is an open standard file format and electronic data interchange, data interchange format that uses Human-readable medium and data, human-readable text to store and transmit data objects consi ...
,
YAML,
Markdown support
*Spell- and grammar-checking
*Version control integration: unified user interface for
Mercurial,
Git,
Subversion
Subversion () refers to a process by which the values and principles of a system in place are contradicted or reversed in an attempt to sabotage the established social order and its structures of Power (philosophy), power, authority, tradition, h ...
,
Perforce and
CVS with changelists and merge, integration with
GitHub and
GitLab hosting services
Only in the Professional version
*Scientific tools integration: integrates with
Jupyter Notebook, supports
Anaconda as well as multiple scientific packages including Matplotlib and NumPy.
*Front-end and back-end web development: special support for
Django,
Flask,
FastAPI and
Pyramid,
CSS and
JavaScript
JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior.
Web browsers have ...
assistance,
Npm,
Webpack and other JavaScript tools
*
SQL and database utilities
*
Cython support
History
PyCharm was released to the market of the Python-focused IDEs to compete with
PyDev (for
Eclipse) or the more broadly focused
Komodo IDE by
ActiveState.
The beta version of the product was released in July 2010, with the 1.0 arriving 3 months later. Version 2.0 was released on December 13, 2011, version 3.0 was released on September 24, 2013, and version 4.0 was released on November 19, 2014.
PyCharm became open source on October 22, 2013. The open source variant is released under the name ''Community Edition'' while the commercial variant, ''Professional Edition'', contains closed-source modules.
As of December 2022, JetBrains has discontinued PyCharm Edu and IntelliJ IDEA Edu. The educational functionality is now bundled with the Community and Professional editions of IntelliJ IDEA and PyCharm.
Users are encouraged to install the Community or Professional editions and enable educational features through the IDE settings.
Licensing
* PyCharm ''Professional Edition'' is commercial, proprietary software and is gratis for open-source projects and for some educational uses. It is paid on a subscription basis, though after paying for one year a "Perpetual Fallback License" will be granted for the version which was available one year before ending the subscription.
* PyCharm ''Community Edition'' is distributed under Apache 2 license. The source code is available on
GitHub.
PyCharm Community Edition
on GitHub.
Limitations
The PyCharm Python IDE does not feature a GUI builder
A graphical user interface builder (or GUI builder), also known as GUI designer or sometimes RAD IDE, is a software development tool that simplifies the creation of graphical user interface, GUIs by allowing the designer to arrange graphical cont ...
for now. While there is no native GUI builder provided within PyCharm, by using PySide6/PyQt6 (the Python bindings to Qt V6), one can gain access to the Qt Widget Designer graphical UI builder. This is currently available with the PyCharm community edition and provides an advantage over the use of Tkinter which is bundled natively with Python and does not offer a GUI designer tool.
See also
* Comparison of Python integrated development environments
* List of Python software
References
External links
* {{Official homepage, http://www.jetbrains.com/pycharm/
Integrated development environments
Linux integrated development environments
Formerly proprietary software
Linux programming tools
Software development kits
Software using the Apache license