Problema ao instalar o Python-Dev

16

Estou tendo problemas para instalar python-dev. Tudo começou quando tentei instalar outro pacote Python e obtive o erro:

SystemError: Cannot compile 'Python.h'. Perhaps you need to install python-dev.

Eu tentei, sudo apt-get install python-devmas recebi o erro:

The following packages have unmet dependencies:
 python-dev : Depends: python2.7-dev (>= 2.7.3) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Então, eu tentei sudo apt-get install python2.7-deve recebi o erro:

The following packages have unmet dependencies:
 python2.7-dev : Depends: python2.7 (= 2.7.3-0ubuntu3) but 2.7.3-0ubuntu3.1 is to be installed
                 Depends: libpython2.7 (= 2.7.3-0ubuntu3) but 2.7.3-0ubuntu3.1 is to be installed

Eu tentei quase tudo nas dependências pós- não atendidas . Estou executando o Ubuntu 12.04 e tenho tudo atualizado. Eu fiz apt-get cleane apt-get autoclean. Eu tentei apt-get -f installe todas as variações sobre esse tema. Eu limpei meu PPA. Eu até tentei usar o Aptitude e, embora tenha feito muita limpeza, o resultado foi o mesmo.

Eu realmente quero poder instalar o python-dev. Como posso fazer isso acontecer? Neste ponto, estou disposto a considerar opções extremas, quaisquer que sejam.

theJollySin
fonte
O problema não está instalando python-dev. O problema está ficando src e inclui pastas propagadas para o seu virtualenv.
RobotHumans
Você tem alguma sugestão aí? Eu estava usando --system-site-packages.
theJollySin 29/03
11
Leia isto: pythoncentral.org/… explica como realmente funciona.
RobotHumans
@CallmeV Este é um ótimo post, mas infelizmente não resolve o problema que estou tendo com o Python-Dev para instalar.
theJollySin
11
@theJollySin - qual versão do ubuntu você está usando? Desative todos os PPAs e execute sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade. Cole a saída em paste.ubuntu.com
fossfreedom

Respostas:

20

Este bit:

 python2.7-dev : Depends: python2.7 (= 2.7.3-0ubuntu3) but 2.7.3-0ubuntu3.1 is to be installed

sugere que você esteja usando alguns repositórios incompatíveis ou tenha alguns pinos apropriados para impedir que as dependências de versão se alinhem. Eu acho que, especificamente, python-2.7 2.7.3-0ubuntu3.1está no Precise-proposedrepositório e a 2.7.3-0ubuntu3versão está no Precise / main propriamente dita, então você pode estar preferindo -propsed para alguns, mas não para todos os pacotes.

Você pode editar sua pergunta para incluir a saída de:

apt-cache policy python2.7-dev
apt-cache policy python2.7

e talvez:

apt-cache show python2.7

...

Lendo a saída apt-cache do seu pastebin, parece que você tem a python2.7 2.7.3-0ubuntu3.1de precise-updates/main instalado, mas python2.7-devé a partir precise/main. Acho que a mídia de instalação ou uma "atualização apt-get" anterior incluiu o precise-updatesrepositório, mas não está no seu sources.list atual.

Eu acho que você poderá iniciar a instalação após adicionar precise-updatese depois apt-get update.

echo "deb http://us.archive.ubuntu.com/ubuntu/ precise-updates main restricted" | sudo tee -a /etc/apt/sources.list.d/precise-updates.list
sudo apt-get update
sudo apt-get install python2.7-dev
Steven K
fonte
11
Eu colei a resposta para apt-cache policy python2.7 e afins aqui: paste.ubuntu.com/5775963
theJollySin
5

Você não deve instalar o numpy com pip, use o pacote que o Ubuntu fornece:

dennis@koekblik:~$ apt-cache show python-numpy
Package: python-numpy
Priority: optional
Section: python
Installed-Size: 7616
...

Quanto ao seu problema real: tente instalar python2.7-dev. Provavelmente falhará, mas deverá fornecer uma mensagem de erro melhor.

Dennis Kaarsemaker
fonte
Ok, sua primeira declaração: existem outros pacotes (como gdal) que seriam muito mais fáceis se eu pudesse instalar através do PIP. Seu segundo ponto, eu posso tentar isso e ver o que acontece. Obrigado.
theJollySin
11
Concordo que o pip é uma ferramenta útil, mas por favor, atenha-se aos pacotes do Ubuntu o máximo possível, muito mais fácil para atualizar. E se você usa o pip para instalar pacotes, pode criar um virtualenv para não precisar instalar como root em / usr / local.
Dennis Kaarsemaker
Ok, vou tentar manter os pacotes do Ubuntu. Mas todo esse problema começou porque eu posso começar a numpyfuncionar bem, mas não posso ser numpyimportado dentro de um virtualenv. Ter um virtualenvsistema funcional para o desenvolvimento de Python é definitivamente o objetivo. Obrigado novamente.
theJollySin 29/03
11
Essa é uma pergunta diferente :) Use um virtualenv com --system-site-packages para obter acesso ao que está instalado via apt.
Dennis Kaarsemaker 29/03
3

solução mais rápida:

  • Instalar (sudo apt-get install synaptic ) Synaptic Package Manager e inicie-o
  • Clique em Configurações-Repositórios
  • Selecione Baixar de: Servidor Principal
  • Clique Close e clique em Reload.
  • Marcar python-devpara instalação e Synaptic também marcará todas as dependências de python-dev(libexpat1-dev, libssl-dev, libssl-doc, python2.7-dev, zlib1g-dev ).

Acabei de resolver o mesmo problema no Ubuntu x86 12.04.3 recém-instalado.

VVV
fonte
0

Para aqueles que encontrarem esse problema, primeiro tente executar

sudo apt-get update

e tente instalar novamente

Andrew Hammett
fonte
Não é necessário dar tal introdução. Apenas dê sua resposta. De acordo com minha experiência, nem sempre unmet dependencypode ser resolvido usandosudo apt-get update
Mostafa Ahangarha