Masalah menginstal Python-Dev

16

Saya kesulitan menginstal python-dev. Semuanya dimulai ketika saya mencoba menginstal paket Python lain dan mendapatkan kesalahan:

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

Saya mencoba sudo apt-get install python-devtetapi mendapat kesalahan:

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.

Jadi saya mencoba sudo apt-get install python2.7-devdan mendapatkan kesalahan:

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

Saya telah mencoba sebagian besar segalanya dalam dependensi posting yang belum terpenuhi . Saya menjalankan Ubuntu 12.04 dan semuanya diperbarui. Saya telah melakukan apt-get cleandan apt-get autoclean. Saya telah mencoba apt-get -f installdan semua variasi pada tema itu. Saya telah membersihkan PPA saya. Saya bahkan mencoba menggunakan Aptitude, dan meskipun itu banyak membersihkan, hasilnya sama.

Saya benar-benar ingin dapat menginstal python-dev. Bagaimana saya bisa mewujudkannya? Pada titik ini, saya bersedia mempertimbangkan opsi ekstrem, apa pun itu.

theJollySin
sumber
Masalahnya bukan menginstal python-dev. Masalahnya adalah mendapatkan src dan menyertakan folder yang dipropogasi ke virtualenv Anda.
RobotHumans
Apakah Anda punya saran di sana? Saya menggunakan --system-site-packages.
theJollySin
1
Baca ini: pythoncentral.org/... itu menjelaskan cara kerjanya.
RobotHumans
@CallmeV Ini adalah posting yang bagus, tapi sayangnya tidak mengatasi masalah yang saya alami untuk menginstal Python-Dev.
theJollySin
1
@theJollySin - versi ubuntu apa yang Anda gunakan? Harap nonaktifkan semua PPA dan jalankan sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade. Rekatkan hasilnya ke paste.ubuntu.com
fossfreedom

Jawaban:

20

Bit ini:

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

menunjukkan bahwa Anda menggunakan beberapa repositori yang tidak cocok, atau memiliki beberapa apt-pin untuk menjaga agar dependensi versi tidak berbaris. Saya pikir, secara khusus, python-2.7 2.7.3-0ubuntu3.1ada di Precise-proposedrepositori dan 2.7.3-0ubuntu3versinya ada di Precise / main, jadi Anda mungkin lebih suka -proposed untuk beberapa tetapi tidak semua paket.

Bisakah Anda mengedit pertanyaan Anda untuk memasukkan output dari:

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

dan mungkin:

apt-cache show python2.7

...

Membaca output apt-cache dari pastebin Anda, sepertinya Anda memiliki python2.7 2.7.3-0ubuntu3.1dari precise-updates/main terinstal, tapi python2.7-devadalah dari precise/main. Saya pikir media instal Anda atau "pembaruan apt-get" yang sebelumnya termasuk precise-updatesrepositori, tetapi itu tidak ada di sources.list Anda saat ini.

Saya pikir Anda akan dapat menginstal setelah menambahkan precise-updatesdan kemudian 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.
sumber
1
Saya menyisipkan respons ke apt-cache policy python2.7dan sejenisnya di sini: paste.ubuntu.com/5775963
theJollySin
5

Anda seharusnya tidak menginstal numpy dengan pip, gunakan paket yang disediakan Ubuntu:

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

Mengenai masalah Anda yang sebenarnya: coba instal python2.7-dev. Kemungkinan akan gagal tetapi harus memberi Anda pesan kesalahan yang lebih baik.

Dennis Kaarsemaker
sumber
Oke, pernyataan pertama Anda: ada paket lain (seperti gdal) yang akan jauh lebih mudah jika saya bisa menginstal melalui PIP. Poin kedua Anda, saya bisa mencobanya dan melihat apa yang terjadi. Terima kasih.
theJollySin
1
Saya setuju bahwa pip adalah alat yang berguna, tetapi mohon tetap menggunakan paket Ubuntu sebanyak mungkin, lebih mudah untuk memperbarui. Dan jika Anda menggunakan pip untuk menginstal paket, Anda mungkin ingin membuat sendiri virtualenv sehingga Anda tidak perlu menginstal sebagai root ke / usr / local.
Dennis Kaarsemaker
Oke, saya akan mencoba untuk tetap menggunakan paket Ubuntu. Tetapi seluruh masalah ini dimulai karena saya dapat numpybekerja dengan baik, tetapi tidak dapat numpydiimpor di dalam virtualenv. Memiliki virtualenvsistem kerja untuk pengembangan Python jelas merupakan tujuannya. Terima kasih lagi.
theJollySin
1
Itu pertanyaan yang berbeda :) Gunakan virtualenv dengan --system-site-paket untuk mendapatkan akses ke apa yang diinstal melalui apt.
Dennis Kaarsemaker
3

solusi tercepat:

  • Instal ( sudo apt-get install synaptic) Pengelola Paket Synaptic dan mulai saja
  • Klik pada Pengaturan-Repositori
  • Pilih Unduh dari: Server Utama
  • Klik Closelalu klik Reload.
  • Tandai python-devuntuk instalasi dan Synaptic juga akan menandai semua dependensi python-dev( libexpat1-dev, libssl-dev, libssl-doc, python2.7-dev, zlib1g-dev).

Saya baru saja menyelesaikan masalah yang sama pada Ubuntu x86 12.04.3 yang baru diinstal.

VVV
sumber
0

Bagi mereka yang mengalami masalah ini, pertama coba dan jalankan

sudo apt-get update

dan coba pasang lagi

Andrew Hammett
sumber
Tidak perlu memberikan pengantar seperti itu. Berikan saja jawaban Anda. Sesuai pengalaman saya, tidak selalu unmet dependencydapat diselesaikan dengan menggunakansudo apt-get update
Mostafa Ahangarha