PyCharm 2024.1 Help

Auto import

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. Using Import Assistant is the preferred way to handle imports in PyCharm because import optimizations are not supported via command line.

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

Automatically add import statements

You can configure the IDE to automatically add import statements if there are no options to choose from.

  1. Press Ctrl+Alt+S to open the IDE settings and then select Editor | General | Auto Import.

  2. In the Python section, configure automatic imports:

    • Select Show import popup to automatically display an import popup when tying the name of a class that lacks an import statement.

    • Select one of the Preferred import style options to define the way an import statement to be generated.

Disable import tooltips

When tooltips are disabled, unresolved references are underlined and marked with the red bulb icon the Quick-fix button. To view the list of suggestions, click this icon (or press Alt+Enter) and select Import class.

Disable all tooltips

  • Hover over the inspection widget in the top-right corner of the editor, click More, and disable the Show Auto-Import Tooltip option.

Disable auto import

If you want to completely disable auto-import, make sure that:

Optimize imports

The Optimize Imports feature helps you remove unused imports and organize import statements in the current file or in all files in a directory at once according to the rules specified in Settings | Editor | Code Style | <language> | Imports.

Optimize all imports

  1. Select a file or a directory in the Project tool window (View | Tool Windows | Project).

  2. Do any of the following:

    • In the main menu, go to Code | Optimize Imports (or press Ctrl+Alt+O).

    • From the context menu, select Optimize Imports.

  3. (If you've selected a directory) Choose whether you want to optimize imports in all files in the directory, or only in locally modified files (if your project is under version control), and click Run.

Optimize imports in a single file

  1. Place the caret at the import statement and press Alt+Enter or use the the Intention action button icon.

  2. Select Optimize imports.

Remove use statement

Optimize imports when committing changes to Git

If your project is under version control, you can instruct PyCharm to optimize imports in modified files before committing them to VCS.

  1. Press Ctrl+K or select Git | Commit from the main menu.

  2. Click Show Commit Options and in the commit message area, select the Optimize imports checkbox.

    Optimize imports before commit

Automatically optimize imports on save

You can configure the IDE to optimize imports in modified files automatically when your changes are saved.

  1. Press Ctrl+Alt+S to open the IDE settings and then select Tools | Actions on Save.

  2. Enable the Optimize imports option.

    Additionally, from the All file types list, select the types of files in which you want to optimize imports.

  3. Apply the changes and close the dialog.

Optimize imports when reformatting a file

You can tell PyCharm to optimize imports in a file every time it is reformatted.

  • Open the file in the editor, press Ctrl+Alt+Shift+L, and make sure the Optimize imports checkbox is selected in the Reformat File dialog that opens.

    Reformat file dialog

After that every time you press Ctrl+Alt+L in this project, PyCharm will optimize its imports automatically.

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:

    the 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 | Editor | General | Auto Import):

from <module> import <name>

import <module>.<name>

the from <module> import <name> style
the import <module>.<name> style

Toggling relative and absolute imports

PyCharm helps you organize relative and absolute imports within a source root. With the specific intention, you can convert absolute imports into relative and relative imports into absolute.

Converting an absolute import into relative

If your code contains any relative import statement, PyCharm will add relative imports when fixing the missing imports.

Fixing a missing import with the relative import statement

Note that relative imports work only within the current source root: you cannot relatively import a package from another source root.

The intentions prompting you to convert imports are enabled by default. To disable them, open project Settings (Ctrl+Alt+S), select Editor | Intentions, and deselect the Convert absolute import to relative and Convert relative import to absolute.

Intentions for converting imports

When you complete a ES6 symbol or a CommonJS module, PyCharm either decides on the style of the import statement itself or displays a popup where you can choose the style you need. Learn more from Auto-import in JavaScript.

Adding import statements on code completion

PyCharm automatically adds an import statement when you refer any module member or package in the Python code and invoke code completion. Auto-import on code completion is also applied to some popular package name aliases, such as np for numpy or pd for pandas.

Auto-import on code completion

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

Add ES6 imports on code completion

Configure auto-import on completion

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

Add ES6 imports on code completion
  1. In the Settings dialog (Ctrl+Alt+S) , go to Editor | General | Auto Import.

  2. On the Auto Import page that opens, use the checkboxes in the TypeScript/JavaScript area to enable or disable import generation on code completion.

Ignoring missing import statements

If you use a module in your code that doesn't have any corresponding stub, PyCharm might show a missing statement error. To suppress this error message, use the # type: ignore comment:

Ignore a missing import statement
Last modified: 05 April 2024