Jupyter Notebooks pro only
Work with notebooks
We’ve made it easier to edit the code in your Notebook: as you’re editing the notebook, the source looks like a regular Python file. This makes light work out of navigating around your code. Of course, round trip editing is supported, and all changes made in either PyCharm or the browser will be reflected immediately.
Run and debug cells
Jupyter Notebooks are great at helping you explore and interact with your data. With PyCharm, Jupyter Notebooks are now even easier to use, as you can quickly run and debug cells from your notebook in the IDE. Of course, many of the hotkeys from in-browser notebooks also work in PyCharm. For example, use Shift+Enter to run the highlighted cell, and select the one below.
Server and kernel management
Get started with your notebooks quicker. With PyCharm you don’t need to start your server or kernel manually: just open a notebook and run a cell. PyCharm automatically starts the server and appropriate kernel for the notebook you’ve opened.
If you’ve lost track of the current value of a variable, you can use PyCharm’s variable viewer to make sure everything looks right.
You may often find yourself needing to move back and forth between different locations in the code when you are developing. PyCharm has long had the Recent Files popup (Ctrl+E, or Cmd+E on macOS) to help you navigate between these files quickly. However, you don’t just want to get to a file, you want to be taken to a specific location, so we’ve introduced the new and improved Recent Locations popup (Ctrl+Shift+E, or Cmd+Shift+E on macOS) to get you to your destination quicker.
UI theme plugins
Don’t like our default styling? We’ve improved our support for UI theme plugins. Find one in the plugins marketplace by looking for 'tag: UI', or learn how to make your own.
Sublime Text keymap
One of the hardest parts of switching to a new tool is having to learn all the new hotkeys. We've added a Sublime Text keymap to make it easier for anyone switching from Sublime Text to PyCharm.
- Native SSH for Git: in previous versions, SSH for Git could be configured to use either built-in or native SSH. Built-in SSH was necessary in case interactive prompts would be required for authentication. In the new version, these prompts can be handled with native SSH. Native SSH supports more features, including better security protocols, so the built-in option has been removed.
Debugger performance for big collections
The PyCharm debugger can now handle infinitely large collections without slowing down while initially loading the collection.
Data class inheritance
Python 3.7 Data Classes were already supported in PyCharm, but now we’ve extended this support to make sure that subclasses of Data Classes also get accurate code completion.
Interpreter in status bar
When you’re developing an application for multiple environments, for example when migrating between Python or framework versions, it makes life easier when you are able to quickly switch between them and see at a glance which version you’re now using.
Type checking for variable assignments
Python’s optional typing helps you to document your code and prevent mistakes down the line. We’ve now furthered our support for it by checking types on variable assignment.
Remote interpreters pro only
PyCharm supports Python interpreters inside Vagrant boxes, and now also makes your Vagrantfile look good.
SSH with sudo
You need root access to control the GPIO pins on your Raspberry Pi, so to make GPIO development easier we’ve made it possible to run code with root privileges over SSH in PyCharm 2019.1. Of course, you could use root privileges for other uses, but we wouldn’t want to encourage those publically, would we now?
Web Development pro only
Improved HTML and CSS quick documentation
CSS has gotten a lot more powerful over the years, which has brought more complexity. To help you find your way around this more complex modern CSS, we’ve improved the quick documentation support – just press Ctrl+Q (or Ctrl+J on macOS) to learn more. Don’t worry, we won’t tell anyone if you look up the docs for the ‘p’ tag.
Multiprocess test runner for pytest
Large test suites are good, but they can take a while to run. To make them complete a little faster, we’ve now upgraded our pytest integration to support multiprocess test running.
Databases pro only
New database connection flow
PyCharm Professional Edition bundles all the SQL support from JetBrains DataGrip. They’ve just improved the process for configuring a new database connection. If you haven’t tried this yet, you are in for a treat. After configuring your database, in addition to being able to explore your tables, you’ll also get schema-aware SQL completion when writing queries in your Python code.