What’s New in PyCharm 2018.2

Develop quickly, and with confidence: configure your environment with pipenv, use the new and improved quick docs, and test with pytest fixtures in PyCharm 2018.2

Please note that features marked pro only are supported only in PyCharm Professional Edition.

Download
Full-fledged Professional
or Free Community
Take a short video tour

Python

Support for pipenv

Pipenv simplifies your application's dependency management. PyCharm 2018.2 will automatically create a pipenv when you open a project with a Pipfile, and makes it easy to create new projects with pipenvs.

Quick documentation is new and improved

Want to try an exciting new library, but not spend all day reading documentation? PyCharm’s quick documentation is now better looking and easier to read. Press Ctrl-Q (Ctrl-J on macOS) to see exactly the documentation you need, right in the editor.

pytest Fixtures
and pytest-bdd pro only

Pytest makes testing your code a breeze. In PyCharm 2018.2 we’ve upgraded our Pytest support with BDD and code intelligence for fixtures. Fixtures are available in both the community edition and the professional edition of PyCharm 2018.2, get PyCharm Professional Edition for BDD support.

reST Preview

You may have already seen how PyCharm (with a plugin) can show you what your Markdown document will look like. This functionality, and more, is now available for reStructuredText.

Attrs support

Have you been reading about those exciting new Dataclasses in Python 3.7, but you can’t upgrade your project yet? The attrs library brings these features (and more) to any Python version.

Code insight improvements

PyCharm aims to help you write better Python code, faster. That’s why we’ve improved the code insight even further: it now checks more type hints, and checks if you’re correctly awaiting function calls in asynchronous code, and offers quick fixes.

Further improvements in Python support

  • You can now specify a file in a run configuration that will be redirected to the stdin of your script
  • Did you know the PyCharm debugger can attach to any running Python process on your computer? If you’re running a lot of different Python processes simultaneously this might get unwieldy. Specify a filter for your program’s name in Settings | Build, Execution, Deployment | Python debugger and get to your target quicker
  • When working with large variables it can take some time for your variables to load, which may slow you down when you’re stepping through your code. You can now set the debugger to only show variables on demand, and speed up your debugging experience.
  • Upgrading your dependencies is important, and that’s why PyCharm tells you when updates are available on the package management screen. You can now choose to only upgrade to stable versions, or to stay with the latest pre-release versions.

Version Control

Multiple GitHub account support

Do you use multiple GitHub accounts on a regular basis? PyCharm 2018.2 makes switching between them more convenient.

Logs tab: multiple tabs and diff preview

He who doesn’t know history is doomed to repeat it. By being able to slice and dice it in multiple tabs, we’ve made it easier to learn from your project’s history.

Browse the entire repository at a specific revision

They said it couldn’t be done, they said it violates the second law of thermodynamics. Time travel: it’s available in PyCharm now.

Database

Create query plan diagrams pro only

SQL is a powerful language and allows you to view your data in many complex ways. To keep your application performant, check your query plans. In PyCharm 2018.2 you can visually inspect where you need to tweak your query or add an index.

IDE Improvements

New icons

PyCharm 2018.2 looks sleeker than ever before. The new design philosophy reduces the usage of color to where it is semantically important, making it easier to find what you need at a glance.

MacBook Pro Touch Bar is now supported

Do you have a MacBook Pro with a Touch Bar? PyCharm now provides context-sensitive touch bar contexts for running your code, debugging, VCS, and more.

Javascript

Code coverage for code running in the browser: find unused code pro only

Code maintenance usually isn’t a developer’s favorite task. Deleting unused code makes the job quicker and lets you finish the task quicker. PyCharm now helps you find unused client-side JS code.

Faster indexing for Angular pro only

Performance is an important topic, and we’re happy to announce that indexing new Angular projects is now twice as fast.

Many new intentions and refactorings, such as Extract React Component pro only

Refactor JavaScript with confidence in PyCharm 2018.2: extract React component, implement interface, generate cases for a TypeScript switch statement over an enum, and more.

Code completion for Vue events and event modifiers pro only

Most Vue templates will have event code attached to them. PyCharm now makes it easier to hook up your handlers to the correct event.

Learn about PyCharm 2018.1

Python

Python 3.7 support

Use the newest Python features with PyCharm: dataclasses, from __future__ import annotations, and more.

Enhanced code intelligence

PyCharm 2018.1 makes it even easier to use type hints to annotate your code. Type hints are now inherited from superclasses, and you can use typing.NewType to define custom types. If you prefer to leave things implicit, we’ve also improved the type inference for collections.

Gutter icons for unit tests

You may have already seen gutter icons to run tests in your JavaScript tests.These are now also available for Python tests, so it’s easier than ever to quickly run a single test.

Data Science

Code cellspro only

When writing scientific code, it doesn’t always make sense to run the whole file. Run only the part of the file you are working on – and never wait to reload your data. Just turn on the scientific mode (View | Scientific Mode) and try them now!

Scientific projectpro only

Get started with your analysis quickly by creating a scientific project. The scientific project will create a folder structure for your data and a Conda environment for you right away. Using a custom Conda installation? You can now tell PyCharm which Conda executable to use.

Web Development

Flask CLIpro only

Flask has introduced the `flask` commands in its newer versions. You can now create run configurations that use the `flask` commands in PyCharm.

TypeScript 2.7 fully supportedpro only

PyCharm Professional Edition comes with all of the features of WebStorm, JetBrains’ JavaScript IDE. New in this release is full support for all new features in TypeScript 2.7.

Version Control

Partially commit files

Do you like granular commits? PyCharm 2018.1 lets you choose exactly which changes to include in your commit.

Improved rebase support

Rebasing is a task that few developers look forward to. Ease the pain with PyCharm’s new rebase integration.

Remote Development

Easier configuration of SSH Python interpreterspro only

Do you like to run code on remote machines? Whether it's an EC2 box or your Raspberry Pi, PyCharm makes it easy to connect.

Improved Docker Compose supportpro only

We’ve added support for Docker Compose 3.3 and later, improved the performance of Docker Compose-based interpreters, and changed the output to make the logs look more like they do when using command-line Docker.

Database Support

Find tables using the 'Find class' windowpro only

PyCharm Professional Edition bundles all of the features of JetBrains DataGrip, our database IDE. To take advantage of this easy-to-use integration, you can now find tables of connected databases using the 'Find class' window.

Further Improvements

  • More HiDPI configurations are now supported on Windows, including multiple monitors using different and/or fractional scaling values.

  • You can now right-click a folder in your project view, and choose ‘Open in terminal’ to open the built-in PyCharm terminal with its working directory set to the selected folder.

Learn about PyCharm 2017.3

Performance

Indexing Improvements

Indexing Improvements

For PyCharm’s code intelligence to work effectively, we need to maintain an index of your code. And although this has always meant we had great performance for lookups, unfortunately the generation of this index sometimes kept users waiting. In this release we’ve been able to make improvements to reduce the time you have to wait for the indexing process to complete. In addition to these improvements for Python, indexing JavaScript code is also quicker in PyCharm Professional Edition. For details, read this blog post where the WebStorm team presents the improvements.

Remote Interpreter Setup Speed

Remote Interpreter Setup Speed pro only

When setting up an SSH interpreter, there are a couple of things PyCharm needs to transfer: first are some tools to run and debug the code remotely. These tools then generate skeletons which, with the remote standard library, need to be transferred back to the local machine. We have made several large improvements to the way we do this, and it is significantly faster now. Please keep in mind though, that the performance is dependent on certain factors, including your connection speed, and the number of packages you have configured on the remote interpreter.

Precompiled Debugger Speedups on macOS

Precompiled Debugger Speedups on macOS

PyCharm’s debugger is written mostly in Python and so we’ve been able to alleviate some of the performance bottlenecks by using Cython to compile our code. Windows users have been getting a precompiled version. Our macOS users now also get a speedup of up to 27x by default. On Linux, you should still click ‘Install’ when prompted about the debugger speedups.

See Your Variables Faster While Debugging

See Your Variables Faster While Debugging

If you store large amounts of data in your variables, e.g. large DataFrames, you might have had to wait a while during debugging as the values were loaded by PyCharm. In 2017.3 these values are loaded asynchronously, and you won’t have to wait for the huge DataFrame to load before you see your other variables.

Data Science

Data Science Mode

Scientific Mode pro only

Unless you’re doing a replication study, data analysis is an exploratory and interactive process. To make this easier, we’ve created a data science mode which shows you your data while you are working on it. As visualizing your data is a key step in finding new links, we’ve integrated a matplotlib viewer as well.

Web Development

REST Client

REST Client pro only

When developing an API you often have to send it a complex request to test your functionality. That’s why we’ve built an all-new REST client for PyCharm 2017.3. Try it yourself: create a scratch file (Ctrl+Alt+Shift+Insert, Cmd+Shift+N on macOS), and choose ‘HTTP Request’.

Django 2.0

Django 2.0 pro only

PyCharm 2017.3 is ready for the newest version of Python’s most popular web framework.

Better JavaScript Code Completion

Better JavaScript Code Completion pro only

PyCharm Professional Edition now uses the TypeScript definition files for code completion of standard JavaScript objects and methods. This means that you’ll have more accurate code completion, and you’ll be able to see more of the standard web APIs. You’ll also be able to see MDN documentation in the quick documentation window (Ctrl+Q, or F1 on macOS)

Python

New Interpreter Settings Screen

New Interpreter Settings Screen

One of the few things in Python that confuse developers are virtualenvs. We’ve been working on making interpreter configuration easier, and you can see the first results in PyCharm 2017.3.

SSH Config

SSH Config pro only

If you use jump hosts, or another complex SSH setup, you’ll be happy to learn that PyCharm 2017.3 will use the settings from your regular SSH config file.

Run Python Modules

Run Python Modules

Several Python frameworks should be run using a module, you can now use PyCharm to run this code exactly like you would from the command line.

Code Highlighting: Function Calls & Type Hints

Code Highlighting: Function Calls & Type Hints

An oft-requested feature is the ability to give function calls a different color; this is now available in PyCharm 2017.3. In addition, you can also change the color of type hints in your code.

Set Next Statement

Set Next Statement

Have you ever debugged code that takes a while to start up, and stepped just a couple lines too far? In PyCharm 2017.3 you can tell the Python interpreter where to go next, whether forwards or backwards. Just right-click on the code and choose ‘Jump to Cursor’

VCS

VCS Performance Improvements

Performance Improvements

For those of you who work on large projects, you may have noticed that sometimes when you switch branches, it takes a little bit of time for the project to refresh. We’ve made optimizations to make this a lot faster.

Workspace switching for branches

Workspace switching for branches

A lot of developers work with feature branches. If you work on different tasks in different branches, you’ll appreciate PyCharm remembering the files you were working on in all your branches, and switching to them automatically.

DB Tools

Group sources

Group sources pro only

Ever worked on a large data science project with many databases? Or had several environments for your web application? You’ll appreciate the ability to group data sources.

Other Features

  • Show Expression Type. Are you building a complex chained statement, and losing track of the returned type at some point? Use ‘Expression Type’ (Ctrl+Shift+P) to see the type of any part of your chained statement.
  • PostgreSQL 10 support. PyCharm 2017.3 Professional Edition fully supports the new PostgreSQL 10 grammar. We’ve also added support for role management and Foreign Data Wrappers.
  • Snap Packages. PyCharm can now be installed with a single command: `snap install [pycharm-community|pycharm-professional] --classic`, and you’ll be staying up-to-date automatically. Use the --edge option for EAP versions, or --candidate for RCs. Ubuntu 16.04 Xenial onward all support snap out of the box.