Problem bei der Installation von Python-Dev


16

Ich habe Probleme bei der Installation python-dev. Alles begann, als ich versuchte, ein anderes Python-Paket zu installieren und die Fehlermeldung bekam:

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

Ich habe versucht, sudo apt-get install python-devaber den Fehler bekommen:

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.

Also versuchte ich es sudo apt-get install python2.7-devund bekam den Fehler:

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

Ich habe fast alles in den ungelösten Abhängigkeiten versucht . Ich lasse Ubuntu 12.04 laufen und habe alles aktualisiert. Ich habe apt-get cleanund getan apt-get autoclean. Ich habe versucht apt-get -f installund alle Variationen zu diesem Thema. Ich habe mein PPA aufgeräumt. Ich habe sogar versucht, Aptitude zu verwenden, und obwohl es viel aufgeräumt hat, war das Ergebnis dasselbe.

Ich möchte wirklich in der Lage sein, Python-Dev zu installieren. Wie kann ich das erreichen? An diesem Punkt bin ich bereit, extreme Optionen in Betracht zu ziehen, was auch immer sie sein mögen.


Das Problem ist nicht die Installation von Python-Dev. Das Problem besteht darin, src und Include-Ordner zu erhalten, die auf Ihre virtuelle Umgebung übertragen wurden.
RobotHumans

Haben Sie dort Vorschläge? Ich habe benutzt --system-site-packages.
theJollySin

1
Lesen Sie dies: pythoncentral.org/… es erklärt, wie es tatsächlich funktioniert.
RobotHumans

@CallmeV Dies ist ein großartiger Beitrag, der sich leider nicht mit dem Problem befasst, dass ich Python-Dev installieren muss.
theJollySin

1
@theJollySin - Welche Ubuntu-Version verwendest du? Bitte deaktivieren Sie alle PPAs und führen Sie sie aus sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade. Fügen
Sie

Antworten:


20

Dieses Bit:

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

schlägt vor, dass Sie einige nicht übereinstimmende Repositorys verwenden oder über geeignete Pins verfügen, um zu verhindern, dass die Versionsabhängigkeiten aufeinandertreffen. Ich denke, speziell python-2.7 2.7.3-0ubuntu3.1ist im Precise-proposedRepository und die 2.7.3-0ubuntu3Version ist in Precise / main richtig, so dass Sie für einige, aber nicht alle Pakete -vorgeschlagen bevorzugen.

Können Sie Ihre Frage bearbeiten, um die Ausgabe von:

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

und vielleicht:

apt-cache show python2.7

...

Beim Lesen der apt-cache-Ausgabe aus Ihrem Pastebin sieht es so aus, als ob Sie python2.7 2.7.3-0ubuntu3.1von precise-updates/main installiert haben, aber python2.7-devvonprecise/main . Ich denke, Ihr Installationsmedium oder ein früheres "apt-get update" enthielt das precise-updatesRepository, aber es ist nicht in Ihrer aktuellen sources.list enthalten.

Ich denke, Sie werden in der Lage sein, die Installation nach dem Hinzufügen precise-updatesund dann zu starten 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
Ich habe die Antwort auf apt-cache policy python2.7und dergleichen hier eingefügt
theJollySin

5

Sie sollten numpy nicht mit pip installieren, sondern das Paket verwenden, das Ubuntu zur Verfügung stellt:

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

Bezüglich Ihres eigentlichen Problems: Versuchen Sie es mit der Installation python2.7-dev. Es wird wahrscheinlich fehlschlagen, sollte Ihnen aber eine bessere Fehlermeldung geben.


Okay, Ihre erste Aussage: Es gibt andere Pakete (wie gdal), die viel einfacher wären, wenn ich sie über PIP installieren könnte. Ihr zweiter Punkt, ich kann das versuchen und sehen, was passiert. Vielen Dank.
theJollySin

1
Ich bin damit einverstanden, dass pip ein nützliches Tool ist, aber bitte halte dich so weit wie möglich an Ubuntu-Pakete, die sich viel einfacher aktualisieren lassen. Und wenn Sie zum Installieren von Paketen pip verwenden, möchten Sie sich möglicherweise eine virtuelle Umgebung erstellen, damit Sie nicht als root in / usr / local installieren müssen.
Dennis Kaarsemaker

Okay, ich werde versuchen, mich an Ubuntu-Pakete zu halten. Aber das ganze Problem begann, weil ich gut numpyarbeiten kann, aber nicht in eine numpyimportiert werden kann virtualenv. Ein funktionierendes virtualenvSystem für die Python-Entwicklung zu haben, ist definitiv das Ziel. Danke noch einmal.
theJollySin

1
Das ist jedoch eine andere Frage :) Verwenden Sie ein virtuelles Env mit --system-site-packages, um über apt auf die installierten Dateien zuzugreifen.
Dennis Kaarsemaker

3

schnellste lösung:

  • Installieren Sie ( sudo apt-get install synaptic) Synaptic Package Manager und starten Sie es
  • Klicken Sie auf Settings-Repositories
  • Wählen Sie Download von: Hauptserver
  • Klicken CloseSie auf und dann auf Reload.
  • Zur python-devInstallation markieren und Synaptic markiert auch alle Abhängigkeiten von python-dev( libexpat1-dev, libssl-dev, libssl-doc, python2.7-dev, zlib1g-dev).

Ich habe gerade das gleiche Problem auf neu installiertem Ubuntu x86 12.04.3 behoben.


0

Versuchen Sie für die, die auf dieses Problem stoßen, zuerst, und führen Sie aus

sudo apt-get update

und versuchen Sie es erneut zu installieren


Eine solche Einführung ist nicht erforderlich. Gib einfach deine Antwort. Nach meiner Erfahrung kann nicht immer unmet dependencymitsudo apt-get update
Mostafa Ahangarha
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.