Problema durante l'installazione di Python-Dev


16

Ho problemi con l'installazione python-dev. Tutto è iniziato quando ho provato a installare un altro pacchetto Python e ho ottenuto l'errore:

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

Ho provato sudo apt-get install python-devma ho ricevuto l'errore:

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.

Quindi ho provato a sudo apt-get install python2.7-devottenere l'errore:

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

Ho provato quasi tutto nelle dipendenze post insoddisfatte . Sto eseguendo Ubuntu 12.04 e ho tutto aggiornato. Ho fatto apt-get cleane apt-get autoclean. Ho provato apt-get -f installe tutte le variazioni su quel tema. Ho ripulito il mio PPA. Ho anche provato ad usare Aptitude, e sebbene abbia fatto molta pulizia, il risultato è stato lo stesso.

Voglio davvero essere in grado di installare python-dev. Come posso farlo accadere? A questo punto, sono disposto a prendere in considerazione opzioni estreme, qualunque esse siano.


Il problema non è l'installazione di python-dev. Il problema è ottenere src e includere cartelle propagate a virtualenv.
RobotHumans,

Hai qualche suggerimento lì? Stavo usando --system-site-packages.
theJollySin

1
Leggi questo: pythoncentral.org/… spiega come funziona effettivamente.
RobotHumans,

@CallmeV Questo è un ottimo post, ma purtroppo non risolve il problema che sto riscontrando nell'installazione di Python-Dev.
theJollySin,

1
@theJollySin - quale versione di Ubuntu stai usando? Si prega di disabilitare tutti i PPA ed eseguire sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade. Incolla l'output su paste.ubuntu.com
fossfreedom

Risposte:


20

Questo bit:

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

suggerisce di utilizzare alcuni repository non corrispondenti o di disporre di alcuni pin apt che impediscono l'allineamento delle dipendenze della versione. Penso, python-2.7 2.7.3-0ubuntu3.1nello specifico, sia nel Precise-proposedrepository e la 2.7.3-0ubuntu3versione sia in Precise / main propria, quindi potresti preferire -proposto per alcuni ma non tutti i pacchetti.

Puoi modificare la tua domanda per includere l'output di:

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

e forse:

apt-cache show python2.7

...

Leggendo l'output di apt-cache dal tuo pastebin, sembra che tu abbia il python2.7 2.7.3-0ubuntu3.1da precise-updates/main installato, ma python2.7-devè da precise/main. Penso che il tuo media di installazione o un precedente "apt-get update" includesse il precise-updatesrepository, ma non è nella tua attuale fonte.list.

Penso che sarai in grado di avviare l'installazione dopo l'aggiunta precise-updatese quindi 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

1
Ho incollato la risposta apt-cache policy python2.7e simili qui: paste.ubuntu.com/5775963
theJollySin

5

Non dovresti installare numpy con pip, usa il pacchetto fornito da Ubuntu:

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

Per quanto riguarda il tuo vero problema: prova a installare python2.7-dev. Probabilmente fallirà, ma dovrebbe darti un messaggio di errore migliore.


Ok, la tua prima affermazione: ci sono altri pacchetti (come gdal) che sarebbero molto più facili se potessi installare tramite PIP. Il tuo secondo punto, posso provarlo e vedere cosa succede. Grazie.
theJollySin

1
Sono d'accordo che pip è uno strumento utile, ma per favore attenersi ai pacchetti Ubuntu il più possibile, molto più facile per l'aggiornamento. E se usi pip per installare i pacchetti, potresti voler creare un virtualenv in modo da non doverlo installare come root in / usr / local.
Dennis Kaarsemaker,

Ok, proverò ad attenermi ai pacchetti Ubuntu. Ma questo intero problema è iniziato perché riesco a numpyfunzionare bene, ma non riesco a numpyimportarlo all'interno di a virtualenv. Avere un virtualenvsistema funzionante per lo sviluppo di Python è sicuramente l'obiettivo. Grazie ancora.
theJollySin

1
Questa è una domanda diversa però :) Usa un virtualenv con --system-site-pacchetti per ottenere l'accesso a ciò che è installato tramite apt.
Dennis Kaarsemaker,

3

soluzione più veloce:

  • Installa ( sudo apt-get install synaptic) Synaptic Package Manager e avvialo
  • Fai clic su Impostazioni-Archivi
  • Seleziona Scarica da: Server principale
  • Fare Closeclic quindi fare clic su Reload.
  • Contrassegna python-devper l'installazione e Synaptic contrassegnerà anche tutte le dipendenze di python-dev( libexpat1-dev, libssl-dev, libssl-doc, python2.7-dev, zlib1g-dev).

Ho appena risolto lo stesso problema su Ubuntu x86 12.04.3 appena installato.


0

Per coloro che riscontrano questo problema, provare innanzitutto a eseguire

sudo apt-get update

e prova a installarlo di nuovo


Non è necessario fornire tale introduzione. Dai solo la tua risposta. Secondo la mia esperienza, non sempre si unmet dependencypuò risolvere usandosudo apt-get update
Mostafa Ahangarha,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.