PyCharm 2024.1 Help

Cython Speedups

Installing Python extension

PyCharm's debugger is written in Python. Python is an interpreted language, which means that instructions have to be translated to machine code as the code is being run.

This costs time, and therefore it isn't as fast as the compiled code. Thankfully, Python supports compiled C-extensions through Cython. PyCharm ships with C versions of debugger code, which you can compile to make debugging in PyCharm faster.

If you have a large code base, using this speedup extension is reasonable.

The actions required to get additional speedups, depend on your platform:

*NIX

When the users start the debugger session, the notification popup appears. The users just need to click the Install link there:

Install Cython extensions
macOS and Windows

You don't need to do anything. We've bundled precompiled extensions, so you're already using them.

Reported Problem

Possible cause

Solution

The following error message is shown:

Python.h: no such file or directory.

You lack header files and static libraries for Python.

Use your package manager to install the python-dev package system-wide.

On Linux and macOS, you can run the following command:

sudo apt-get install python-dev

To install the package for specific Python version, use python-dev<version>. For example:

sudo apt-get install python3.11-dev

The following error message is shown:

Command 'gcc' failed with exit status 1.

You lack a C compiler.

Install a C compiler in order to build Cython extensions for the debugger. For more information, refer to the Cython documentation.

Using Cython Speedups without PyCharm UI

If you want to manually compile Cython speedups, do not use the PyCharm UI.

On Ubuntu, use the following command:

/usr/bin/python3 /<PYCHARM_INSTALLATION_PATH>/plugins/python/helpers/pydev/setup_cython.py build_ext --inplace

<PYCHARM_INSTALLATION_PATH> is the path to the PyCharm installation directory, for example, /opt/pycharm-2022.1.

Note that your paths should be adjusted to your particular local system.

Last modified: 26 May 2024