Como Corrigir “fatal error: Python.h: No such file or directory” em Extensões C do Python

Ana Maria Gomes
4 minutos de leitura

Conteúdos do tutorial

Está tentando construir uma biblioteca compartilhada usando uma extensão C no Python e se deparou com o temido “fatal error: Python.h: No such file or directory”? Não se preocupe, pois esse é um problema comum que muitos desenvolvedores enfrentam, e ele pode ser resolvido com alguns passos simples.

Entendendo o Erro

A mensagem de erro indica que o compilador não consegue encontrar os arquivos de cabeçalho do Python necessários para construir a extensão C. Esses arquivos de cabeçalho fazem parte do pacote de desenvolvimento do Python, que nem sempre é instalado por padrão.

Instalando os Cabeçalhos de Desenvolvimento do Python

Para resolver esse erro, você precisa instalar os cabeçalhos de desenvolvimento do Python. O processo de instalação varia dependendo do seu sistema operacional e do gerenciador de pacotes que ele utiliza.

Para sistemas baseados em Debian (como Ubuntu):

sudo apt-get install python-dev   # Para Python 2.x
sudo apt-get install python3-dev  # Para Python 3.x

Se você estiver usando uma versão específica menor do Python 3, precisará instalar o pacote de desenvolvimento correspondente:

sudo apt-get install python3.5-dev  # Para Python 3.5<br># ... e assim por diante para outras versões

Para versões mais recentes, a convenção de nomes mudou um pouco:

sudo apt install libpython3.7-dev  # Para Python 3.7
# ... e assim por diante para outras versões

Para sistemas baseados em Red Hat (como CentOS):

sudo yum install python-devel    # Para Python 2.x
sudo yum install python3-devel   # Para Python 3.x

Para Fedora:

sudo dnf install python2-devel  # Para Python 2.x
sudo dnf install python3-devel  # Para Python 3.x

Para openSUSE:

sudo zypper in python-devel   # Para Python 2.x
sudo zypper in python3-devel  # Para Python 3.x

Para Alpine Linux:

sudo apk add python2-dev  # Para Python 2.x
sudo apk add python3-dev  # Para Python 3.x

Para Cygwin:

apt-cyg install python-devel   # Para Python 2.x
apt-cyg install python3-devel  # Para Python 3.x

Nota Importante

Tenha em mente que instalar python3-dev ou python3-devel não cobre automaticamente todas as versões menores do Python 3. Se você estiver usando o Python 3.11, por exemplo, pode ser necessário instalar python3.11-dev ou python3.11-devel.

Resumo

Para corrigir o erro “fatal error: Python.h: No such file or directory”, você precisa instalar os cabeçalhos de desenvolvimento do Python para a sua versão específica do Python. Isso pode ser feito usando o gerenciador de pacotes do seu sistema. Uma vez instalados, você deve ser capaz de compilar sua extensão C sem problemas. Lembre-se de escolher o pacote correto para a sua versão do Python para garantir a compatibilidade.

Inscreva-se gratuitamente e fique atualizado

Receba toda semana um resumo dos principais conteúdos da Asimov direto no seu e-mail. 100% livre de spam.

Áreas de interesse: