Problem z instalacją Python-Dev

16

Mam problem z instalacją python-dev. Wszystko zaczęło się, gdy próbowałem zainstalować inny pakiet Python i otrzymałem błąd:

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

Próbowałem, sudo apt-get install python-devale wystąpił błąd:

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.

Więc wtedy spróbowałem sudo apt-get install python2.7-devi dostałem błąd:

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

Próbowałem prawie wszystkiego w post niezaspokojonych zależnościach . Używam Ubuntu 12.04 i mam wszystko zaktualizowane. Zrobiłem apt-get cleani apt-get autoclean. Próbowałem apt-get -f installi wszystkie odmiany tego tematu. Wyczyściłem mój PPA. Próbowałem nawet użyć Aptitude i chociaż dużo się oczyściło, wynik był taki sam.

Naprawdę chcę móc zainstalować Python-dev. Jak mogę to zrobić? W tym momencie jestem gotów rozważyć ekstremalne opcje, niezależnie od tego, jakie mogą być.

theJollySin
źródło
Problemem nie jest instalacja Python-dev. Problemem jest uzyskanie src i dołączenie folderów propagowanych do virtualenv.
RobotHumans
Czy masz jakieś sugestie? Używałem --system-site-packages.
theJollySin
1
Przeczytaj to: pythoncentral.org/… wyjaśnia, jak to naprawdę działa.
RobotHumans
@CallmeV To świetny post, ale niestety nie rozwiązuje problemu z instalowaniem Python-Dev.
theJollySin
1
@ theJollySin - jakiej wersji ubuntu używasz? Wyłącz wszystkie umowy PPA i uruchom sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade. Wklej wynik do paste.ubuntu.com
fossfreedom

Odpowiedzi:

20

Ten kawałek:

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

sugeruje, że korzystasz z niedopasowanych repozytoriów lub masz apt-piny na miejscu, uniemożliwiając wyrównanie zależności między wersjami. Myślę, że w szczególnościpython-2.7 2.7.3-0ubuntu3.1 znajduje się w Precise-proposedrepozytorium, a 2.7.3-0ubuntu3wersja jest w Precise / main właściwa, więc możesz preferować opcję -w przypadku niektórych, ale nie wszystkich pakietów.

Czy możesz edytować swoje pytanie, aby uwzględnić dane wyjściowe:

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

I może:

apt-cache show python2.7

...

Czytając wyjście apt-cache ze swojego pastebin, wygląda na to masz python2.7 2.7.3-0ubuntu3.1od precise-updates/main zainstalowany, ale python2.7-devjest odprecise/main . Myślę, że twój nośnik instalacyjny lub wcześniejsza „apt-get update” obejmował precise-updatesrepozytorium, ale nie ma go w twoim bieżącym pliku sources.list.

Myślę, że będziesz mógł rozpocząć instalację po dodaniu, precise-updatesa potem 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.
źródło
1
Wkleiłem odpowiedź apt-cache policy python2.7i tym podobne tutaj: paste.ubuntu.com/5775963
theJollySin
5

Nie powinieneś instalować numpy z pipem, skorzystaj z pakietu Ubuntu:

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

Jeśli chodzi o rzeczywisty problem: spróbuj zainstalować python2.7-dev. Prawdopodobnie zawiedzie, ale powinien dać ci lepszy komunikat o błędzie.

Dennis Kaarsemaker
źródło
Dobra, twoje pierwsze stwierdzenie: istnieją inne pakiety (takie jak gdal), które byłyby o wiele łatwiejsze, gdybym mógł zainstalować przez PIP. Drugi punkt, mogę spróbować i zobaczyć, co się stanie. Dzięki.
theJollySin
1
Zgadzam się, że pip jest użytecznym narzędziem, ale proszę trzymać się pakietów Ubuntu tak dużo, jak to możliwe, znacznie łatwiejsze do aktualizacji. A jeśli używasz pipa do instalowania pakietów, możesz stworzyć sobie virtualenv, więc nie musisz instalować się jako root w / usr / local.
Dennis Kaarsemaker
Dobra, postaram się trzymać pakietów Ubuntu. Ale cały ten problem zaczął się, ponieważ mogę numpydobrze działać, ale nie mogę zostać numpyzaimportowany do virtualenv. Posiadanie działającego virtualenvsystemu do programowania w języku Python jest zdecydowanie celem. Dzięki jeszcze raz.
theJollySin
1
To jednak inne pytanie :) Użyj virtualenv z pakietami --system-site-site, aby uzyskać dostęp do tego, co jest zainstalowane przez apt.
Dennis Kaarsemaker
3

najszybsze rozwiązanie:

  • Zainstalować (sudo apt-get install synaptic ) Synaptic Package Manager i uruchom go
  • Kliknij Ustawienia-Repozytoria
  • Wybierz Pobierz z: Serwer główny
  • Kliknij, Closea następnie kliknijReload .
  • Zaznacz python-devdo instalacji, a Synaptic oznaczy również wszystkie zależności python-dev( libexpat1-dev, libssl-dev, libssl-doc, python2.7-dev, zlib1g-dev).

Właśnie rozwiązałem ten sam problem na świeżo zainstalowanym Ubuntu x86 12.04.3.

VVV
źródło
0

Dla tych, którzy napotkają ten problem, najpierw spróbuj uruchomić

sudo apt-get update

i spróbuj zainstalować ponownie

Andrew Hammett
źródło
Takie wprowadzenie nie jest konieczne. Po prostu podaj swoją odpowiedź. Z mojego doświadczenia unmet dependencysudo apt-get update
wynika