Parece que você não instalou corretamente os arquivos de cabeçalho e as bibliotecas estáticas do python dev. Use seu gerenciador de pacotes para instalá-los em todo o sistema.
Para apt
( Ubuntu, Debian ... ):
sudo apt-get install python-dev # for python2.x installs
sudo apt-get install python3-dev # for python3.x installs
Para yum
( CentOS, RHEL ... ):
sudo yum install python-devel # for python2.x installs
sudo yum install python3-devel # for python3.x installs
Para dnf
( Fedora ... ):
sudo dnf install python2-devel # for python2.x installs
sudo dnf install python3-devel # for python3.x installs
Para zypper
( openSUSE ... ):
sudo zypper in python-devel # for python2.x installs
sudo zypper in python3-devel # for python3.x installs
Para apk
( Alpine ... ):
# This is a departure from the normal Alpine naming
# scheme, which uses py2- and py3- prefixes
sudo apk add python2-dev # for python2.x installs
sudo apk add python3-dev # for python3.x installs
Para apt-cyg
( Cygwin ... ):
apt-cyg install python-devel # for python2.x installs
apt-cyg install python3-devel # for python3.x installs
locate Python.h
e veja se você já possui o arquivo antes de fazer tudo isso. Se você puder encontrar o arquivo localizado, em geral esta resposta funcionará: stackoverflow.com/a/19344978/4954434 (Pode ser apenas um problema de caminho) #sudo yum install python27-devel
apt-get install python3.6-dev
funcionou para mim.sudo apt-get install python3.6-dev
sudo apt-get install python3.7-dev
.No Ubuntu, eu estava executando o Python 3 e tive que instalar
Se você deseja usar uma versão do Python que não esteja vinculada ao python3, instale o pacote python3.x-dev associado. Por exemplo:
fonte
sudo apt-get install python3.4-dev
para o meu Python3.4 e isso resolveu o meu problema.sudo apt-get install python2.7-dev
o problema foipython3-dev
instalará dependências para essa versão vinculada aopython3
comando. Portanto, se você deseja instalar para uma versão específica, use a versão completa como -python3.x-dev
.sudo apt-get install python3.6-dev
Para Python 3.7 e Ubuntu em particular, eu precisava
sudo apt install libpython3.7-dev
. Eu acho que em algum momento os nomes foram alterados
pythonm.n-dev
para isso.para Python 3.6, da mesma forma:
sudo apt install libpython3.6-dev
fonte
sudo apt install libpython3.6-dev
Duas coisas que você tem que fazer.
Instale o pacote de desenvolvimento para Python, no caso do Debian / Ubuntu / Mint, isso é feito com o comando:
A segunda coisa é que os arquivos de inclusão não estão por padrão no caminho de inclusão, nem a biblioteca Python é vinculada ao executável por padrão. Você precisa adicionar esses sinalizadores (substitua a versão do Python de acordo):
Em outras palavras, seu comando de compilação deve ser:
fonte
pkg-config
em vez de uma matéria--I
: stackoverflow.com/a/21531170/895245Se você estiver usando um Raspberry Pi:
fonte
no Fedora, execute isso para o Python 2:
e para Python 3:
fonte
apt-get install python-dev
.Se você estiver usando o tox para executar testes em várias versões do Python, pode ser necessário instalar as bibliotecas de desenvolvimento Python para cada versão do Python em que você está testando.
fonte
Solução para Cygwin
Você precisa instalar o pacote
python2-devel
oupython3-devel
, dependendo da versão do Python que estiver usando.Você pode instalá-lo rapidamente usando os de 32 ou 64 bits
setup.exe
(dependendo da instalação) do Cygwin.com .Exemplo (modifique
setup.exe
o nome do arquivo e a versão principal do Python, se necessário):Você também pode verificar minha outra resposta para mais algumas opções para instalar os pacotes do Cygwin a partir da linha de comando.
fonte
Na API da AWS (centOS), seus
fonte
pip install cryptography
em uma instância do linux da amazon.Para mim, alterá-lo para isso funcionou:
Encontrei o arquivo
/usr/include/python2.7/Python.h
e, como já/usr/include
está no caminho de inclusão,python2.7/Python.h
deve ser suficiente.Você também pode adicionar o caminho de inclusão na linha de comando -
gcc -I/usr/lib/python2.7
(obrigado @ erm3nda).fonte
gcc -I/usr/lib/python2.7 etc
vez de codificar as chamadas de inclusão.Verifique se os arquivos dev do Python vêm com o seu sistema operacional.
Você não deve codificar a biblioteca e incluir caminhos. Em vez disso, use pkg-config, que exibirá as opções corretas para o seu sistema específico:
Você pode adicioná-lo à sua linha do gcc :
fonte
Instalação do AWS EC2 executando python34:
sudo yum install python34-devel
fonte
No meu caso, o que o corrigiu no Ubuntu foi instalar os pacotes
libpython-all-dev
(oulibpython3-all-dev
se você usa o Python 3).fonte
python-all-dev
no meu caso, mas perto o suficiente.Se você usa um virtualenv com um python 3.6 (borda agora), instale o python 3.6 dev correspondente
sudo apt-get install python3.6-dev
; caso contrário, a execuçãosudo python3-dev
instalará o python dev 3.3.3-1, o que não resolverá o problema.fonte
Não é a mesma situação, mas também funciona para mim e agora posso usar o SWIG com o Python3.5 :
Eu estava tentando compilar:
Com o Python 2.7 funciona bem, não com a minha versão 3.5:
Depois de executar na minha instalação do Ubuntu 16.04:
Agora eu posso compilar sem problemas Python3.5:
fonte
Também encontrei esse erro ao instalar o coolprop no ubuntu.
Para o ubuntu 16.04 com python 3.6
Se isso não funcionar, tente instalar / atualizar a
gcc
lib.fonte
python3-dev
várias vezes e continuava recebendo o mesmo erro, mas não sabiapython3.6-dev
!! Obrigado!!tente o arquivo apt. É difícil lembrar o nome do pacote em que reside o arquivo ausente. É genérico e útil para qualquer arquivo de pacote.
Por exemplo:
Agora você pode adivinhar qual escolher.
fonte
Consegui resolver esse problema e gerar o arquivo .so em um comando
fonte
Para os camaradas OpenSuse por aí:
fonte
Para o CentOS 7:
Segui as instruções aqui para instalar o python3.6 em várias VMs: https://www.digitalocean.com/community/tutorials/how-to-install-python-3-and-set-up-a-local-programming- environment-on-centos-7 e foi capaz de construir mod_wsgi e fazê-lo funcionar com um virtualenv python3.6
fonte
Se você estiver usando o Python 3.6 no Amazon Linux (baseado no RHEL, mas as respostas do RHEL fornecidas aqui não funcionaram):
fonte
Este erro ocorreu quando tentei instalar o ctds no CentOS 7 com o Python3.6. Eu fiz todos os truques mencionados aqui, incluindo
yum install python34-devel
. O problema foiPython.h
encontrado em/usr/include/python3.4m but not in /usr/include/python3.6m
. Eu tentei usar--global-option
para apontar para incluir dir (pip3.6 install --global-option=build_ext --global-option="--include-dirs=/usr/include/python3.4m" ctds
). Isso resultou em umlpython3.6m
não encontrado ao vincular ctds.Finalmente, o que funcionou foi consertar o ambiente de desenvolvimento do Python3.6 para corrigir as inclusões e bibliotecas.
O Python.h precisa estar no seu caminho de inclusão do gcc. Qualquer que seja a versão do python usada, por exemplo, se for 3.6, deve estar
/usr/include/python3.6m/Python.h
normalmente.fonte
Claro
python-dev
oulibpython-all-dev
é a primeira coisa a (apt
)install
, mas se isso não ajudar como foi o meu caso, aconselho você a instalar os pacotes externos da Interface de Função porsudo apt-get install libffi-dev
esudo pip install cffi
.Isso deve ajudar especialmente se você vir o erro como / de
c/_cffi_backend.c:2:20: fatal error: Python.h: No such file or directory
.fonte
Aparece frequentemente quando você está tentando remover
python3.5
e instalarpython3.6
.Portanto, ao usar
python3
(whichpython3 -V
=>python3.6
) para instalar alguns pacotes, opython3.5
cabeçalho necessário aparecerá esse erro.Resolva pelo
python3.6-dev
módulo de instalação .fonte
Você deve instalar os arquivos de desenvolvimento Python no seu sistema operacional se o Python fornecido com o sistema operacional não vier com eles. As muitas respostas sobre essa pergunta mostram as inúmeras maneiras que isso pode ser alcançado em diferentes sistemas.
Quando você o faz, o problema é informar ao compilador onde eles estão localizados e como compilar com eles. Python vem com um programa chamado
python-config
. Para compilação, você precisa da--includes
saída e para vincular um programa à biblioteca Python (incorporando o Python ao seu programa) a--ldflags
saída. Exemplo:O
python-config
programa pode ter o nome das versões do Python - no Debian, Ubuntu, por exemplo, elas podem ter o nomepython3-config
oupython3.6-config
.fonte
Às vezes, mesmo após a instalação do python-dev, o erro persiste, verifique o erro se estiver 'gcc' ausente.
Primeiro faça o download, conforme indicado em https://stackoverflow.com/a/21530768/8687063 , depois instale o gcc
Para o apt (Ubuntu, Debian ...):
Para yum (CentOS, RHEL ...):
Para dnf (Fedora ...):
Para zypper (openSUSE ...):
Para apk (Alpine ...):
fonte
Isso significa que
Python.h
não está no caminho de inclusão padrão do seu compilador. Você o instalou em todo o sistema ou localmente? Qual é o seu sistema operacional?Você pode usar o
-I<path>
sinalizador para especificar um diretório adicional onde seu compilador deve procurar por cabeçalhos. Você provavelmente terá que fazer o acompanhamento-L<path>
para que o gcc possa encontrar a biblioteca que você usará-l<name>
.fonte