ปัญหาการติดตั้ง Python-Dev


16

python-devฉันกำลังมีปัญหาในการติดตั้ง ทุกอย่างเริ่มต้นเมื่อฉันพยายามติดตั้งแพ็กเกจ Python อื่นและได้รับข้อผิดพลาด:

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

ฉันพยายามsudo apt-get install python-devแต่ได้รับข้อผิดพลาด:

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.

ดังนั้นฉันจึงลองsudo apt-get install python2.7-devและได้รับข้อผิดพลาด:

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

ฉันได้พยายามทุกอย่างที่สุดในการโพสต์การอ้างอิง unmet ฉันกำลังใช้งาน Ubuntu 12.04 และฉันได้รับการปรับปรุงทุกอย่าง ฉันได้ทำและapt-get clean apt-get autocleanฉันได้ลองapt-get -f installและชุดรูปแบบทั้งหมดนั้นแล้ว ฉันทำความสะอาด PPA ของฉันแล้ว ฉันลองใช้ความถนัดถึงแม้ว่ามันจะทำความสะอาดได้มาก แต่ผลลัพธ์ก็เหมือนกัน

ฉันต้องการติดตั้ง python-dev จริงๆ ฉันจะทำให้สิ่งนี้เกิดขึ้นได้อย่างไร เมื่อมาถึงจุดนี้ฉันยินดีที่จะพิจารณาตัวเลือกมากไม่ว่าพวกเขาจะเป็นอะไร


ปัญหาไม่ได้ติดตั้ง python-dev ปัญหาคือการได้รับ src และรวมถึงโฟลเดอร์ที่นำเสนอไปยัง virtualenv ของคุณ
RobotHumans

คุณมีคำแนะนำใด ๆ บ้างไหม? --system-site-packagesผมใช้
theJollySin

1
อ่านสิ่งนี้: pythoncentral.org/ ......มันอธิบายว่ามันใช้งานได้จริงอย่างไร
RobotHumans

@CallmeV นี่คือโพสต์ที่ยอดเยี่ยม แต่น่าเศร้าที่ไม่ได้แก้ไขปัญหาที่ฉันได้รับ Python-Dev เพื่อติดตั้ง
theJollySin

1
@theJollySin - คุณใช้ Ubuntu รุ่นใดอยู่ sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgradeโปรดปิดสัญญาซื้อขายไฟฟ้าทั้งหมดและเรียกใช้ วางผลลัพธ์ไปที่ paste.ubuntu.com
fossfreedom

คำตอบ:


20

บิตนี้:

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

แสดงให้เห็นว่าคุณกำลังใช้ที่เก็บข้อมูลที่ไม่ตรงกันบางส่วนหรือมี apt-หมุดบางส่วนอยู่ในตำแหน่งเพื่อป้องกันการพึ่งพาเวอร์ชันจากแถวเรียง ฉันคิดว่าโดยเฉพาะpython-2.7 2.7.3-0ubuntu3.1อยู่ในPrecise-proposedพื้นที่เก็บข้อมูลและ2.7.3-0ubuntu3รุ่นอยู่ในที่แม่นยำ / หลักที่เหมาะสมดังนั้นคุณอาจจะชอบ - เสนอสำหรับบางส่วน แต่ไม่ใช่ทุกแพ็คเกจ

คุณสามารถแก้ไขคำถามของคุณเพื่อรวมผลลัพธ์ของ:

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

และอาจจะ:

apt-cache show python2.7

...

อ่านเอาท์พุท apt-แคชจาก Pastebin ของคุณดูเหมือนว่าคุณมี python2.7 2.7.3-0ubuntu3.1จากprecise-updates/main ติดตั้ง แต่อยู่ห่างจากpython2.7-dev precise/mainฉันคิดว่าสื่อการติดตั้งของคุณหรือ "apt-get update" ก่อนหน้านี้รวมถึงที่precise-updatesเก็บข้อมูล แต่ไม่ได้อยู่ในรายการแหล่งที่มาปัจจุบันของคุณ

ฉันคิดว่าคุณจะสามารถที่จะได้รับการติดตั้งไปหลังจากเพิ่มแล้วprecise-updatesapt-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
ฉันได้วางการตอบสนองapt-cache policy python2.7และไม่ชอบที่นี่: paste.ubuntu.com/5775963
theJollySin

5

คุณไม่ควรติดตั้ง numpy ด้วย pip ให้ใช้แพ็คเกจของ Ubuntu:

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

ในฐานะที่เป็นปัญหาที่แท้จริงของคุณ: python2.7-devลองติดตั้ง อาจจะล้มเหลว แต่ควรให้ข้อความแสดงข้อผิดพลาดที่ดีกว่า


ตกลงข้อความแรกของคุณ: มีแพ็คเกจอื่น ๆ (เช่นgdal) ที่จะง่ายกว่านี้ถ้าฉันสามารถติดตั้งผ่าน PIP จุดที่สองของคุณฉันสามารถลองและดูว่าเกิดอะไรขึ้น ขอบคุณ
theJollySin

1
ฉันยอมรับว่า pip เป็นเครื่องมือที่มีประโยชน์ แต่โปรดยึดติดกับแพ็คเกจของ Ubuntu ให้มากที่สุดเท่าที่จะทำได้ง่ายกว่าสำหรับการอัปเดต และถ้าคุณใช้ pip เพื่อติดตั้งแพ็คเกจคุณอาจต้องการสร้าง virtualenv ด้วยตัวคุณเองดังนั้นคุณไม่จำเป็นต้องติดตั้งเป็นรูทใน / usr / local
Dennis Kaarsemaker

โอเคฉันจะพยายามติดกับแพ็คเกจของ Ubuntu แต่ปัญหาทั้งหมดนี้เริ่มต้นขึ้นเพราะฉันสามารถรับได้numpyการปรับการทำงาน แต่ไม่สามารถนำเข้ามาภายในnumpy virtualenvการมีvirtualenvระบบการทำงานสำหรับการพัฒนา Python นั้นเป็นเป้าหมายที่แน่นอน ขอบคุณอีกครั้ง.
theJollySin

1
นั่นเป็นคำถามที่แตกต่างกัน :) ใช้ virtualenv กับ --system-site-packages เพื่อเข้าถึงสิ่งที่ติดตั้งผ่าน apt
Dennis Kaarsemaker

3

ทางออกที่เร็วที่สุด:

  • ติดตั้ง ( sudo apt-get install synaptic) Synaptic Package Manager และเริ่มต้น
  • คลิกที่การตั้งค่า - ที่เก็บ
  • เลือกดาวน์โหลดจาก: เซิร์ฟเวอร์หลัก
  • คลิกแล้วคลิกที่CloseReload
  • ทำเครื่องหมายpython-devสำหรับการติดตั้งและ Synaptic จะทำเครื่องหมายการพึ่งพาทั้งหมดของpython-dev( libexpat1-dev, libssl-dev, libssl-doc, python2.7-dev, zlib1g-dev)

ฉันเพิ่งแก้ไขปัญหาเดียวกันบน Ubuntu x86 12.04.3 ที่เพิ่งติดตั้งใหม่


0

สำหรับผู้ที่พบปัญหานี้ก่อนอื่นให้ลองและเรียกใช้

sudo apt-get update

และลองติดตั้งอีกครั้ง


ไม่จำเป็นต้องให้คำแนะนำดังกล่าว เพียงแค่ให้คำตอบของคุณ ตามประสบการณ์ของฉันไม่unmet dependencyสามารถแก้ไขได้เสมอโดยใช้sudo apt-get update
Mostafa Ahangarha
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.