PyCharm 2018.3 Help

Creating and Optimizing Imports

When you reference a class that has not been imported, PyCharm helps you locate this file and add it to the list of imports. You can import a single class or an entire package, depending on your settings.

The import statement is added to the imports section, but the caret does not move from the current position, and your current editing session does not suspend. This feature is known as the Import Assistant.

The same possibility applies to XML files. When you type a tag with an unbound namespace, the import assistant suggests to create a namespace and offers a list of appropriate choices.

Creating imports on the fly

Import packages on-the-fly

  1. Start typing a name in the editor. If the name references a class that has not been imported, the following prompt appears:
    python import

    If the pop-up annoys you, change this behavior for the current file. Just click Hector Hector icon in the Status bar, and clear the check box Import Pop-up:

    import popup

    The unresolved references will be underlined, and you will have to invoke intention action Add import explicitly.

  2. Press Alt+Enter. If there are multiple choices, select the desired import from the list.

    choose a class to import

You can define your preferred import style for Python code by using the following options available on the Auto Import page of the project settings (Settings/Preferences | Editor | General | Auto Import):

from <module> import <name>import <module>.<name>
py import style1
py import style2

Optimizing imports

Sooner or later, some of the imported classes or packages become redundant to the code. PyCharm provides the Optimize Imports feature, which enables you, whenever it is convenient, to remove unused imports from your current file, or from all files in the current directory at once. This helps you avoid unused, excessive and duplicating imports in your project. One can remove unused import statements in the entire project or in the current file only.

Besides cleaning the code from the unused imports, PyCharm formats the existing import statements according to the Style Guide for Python Code. So doing, PyCharm splits import statements into separate lines, and sorts them into groups (refer to the Imports section for details).

Also, imports are sorted alphabetically and case-sensitively within the respective groups:

py optimize imports

You can modify the sorting policy in the Import tab of the Python code style settings (Settings/Preferences | Editor | Code Style | Python). See Python Code Style Settings for more information.

Optimize imports in the entire project

  1. Switch the focus to the Project tool window and do one of the following:

    • On the main menu, choose Code | Optimize Imports.

    • Press Ctrl+Alt+O.

    The Optimize Imports dialog opens.

  2. If your project is under version control, the option Only VCS changed files is enabled. Select or clear this option as required.

  3. Click Run.

One way of dealing with unused import is to use the quick-fix that appears when you set the caret at the highlighted unused import. However, you can optimize imports in a larger scope as described below.

Optimize imports in the current file:

  1. On the main menu, choose Code | Optimize Imports.

  2. Press Ctrl+Alt+O.

  3. Place the caret at the import statements, click icons actions intentionBulb svg, and choose Remove unused import.

  4. Open the Reformat File Dialog (Ctrl+Shift+Alt+L) and select the Optimize imports checkbox.

Add import statements on code completion

PyCharm adds import statements when you complete exported JavaScript or TypeScript symbols.

You can disable auto import on completion and use quick-fixes instead:

  1. In the Settings/Preferences dialog (Ctrl+Alt+S), click General under editor, and then click Auto Import. The Auto Import page opens.

  2. Use the checkboxes in the TypeScript/JavaScript area to enable or disable import generation on code completion.

Last modified: 27 February 2019

See Also