Sự cố khi cài đặt Python-Dev


16

Tôi đang gặp sự cố khi cài đặt python-dev. Tất cả bắt đầu khi tôi cố cài đặt một gói Python khác và gặp lỗi:

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

Tôi đã thử sudo apt-get install python-devnhưng gặp lỗi:

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.

Vì vậy, sau đó tôi đã thử sudo apt-get install python2.7-devvà nhận được lỗi:

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

Tôi đã thử hầu hết mọi thứ trong bài viết phụ thuộc chưa được đáp ứng . Tôi đang chạy Ubuntu 12.04 và tôi đã cập nhật mọi thứ. Tôi đã làm apt-get cleanapt-get autoclean. Tôi đã thử apt-get -f installvà tất cả các biến thể về chủ đề đó. Tôi đã dọn sạch PPA của tôi. Tôi thậm chí đã thử sử dụng Aptitude, và mặc dù nó đã dọn dẹp rất nhiều, nhưng kết quả vẫn như vậy.

Tôi thực sự muốn có thể cài đặt python-dev. Làm thế nào tôi có thể làm điều này xảy ra? Tại thời điểm này, tôi sẵn sàng xem xét các lựa chọn cực đoan, bất kể chúng có thể là gì.


Vấn đề không phải là cài đặt python-dev. Vấn đề là nhận src và bao gồm các thư mục được hỗ trợ cho virtualenv của bạn.
RobotHumans

Bạn có bất cứ đề nghị ở đó? Tôi đã sử dụng --system-site-packages.
theJollySin

1
Đọc này: pythoncentral.org/ Khăn nó giải thích cách nó thực sự hoạt động.
RobotHumans

@CallmeV Đây là một bài viết tuyệt vời, nhưng thật đáng buồn là không giải quyết được vấn đề tôi đang cài đặt Python-Dev.
theJollySin

1
@theJollySin - bạn đang sử dụng phiên bản nào của Ubuntu? Vui lòng vô hiệu hóa tất cả các PPA và chạy sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade. Dán đầu ra vào paste.ubfox.com
fossfreedom

Câu trả lời:


20

Bit này:

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

đề nghị rằng bạn đang sử dụng một số kho lưu trữ không khớp hoặc có một số chân apt để giữ cho các phụ thuộc phiên bản không xếp hàng. Tôi nghĩ, cụ thể, python-2.7 2.7.3-0ubuntu3.1là trong Precise-proposedkho lưu trữ và 2.7.3-0ubuntu3phiên bản là chính xác / chính xác, vì vậy bạn có thể thích được cung cấp cho một số nhưng không phải tất cả các gói.

Bạn có thể chỉnh sửa câu hỏi của bạn để bao gồm đầu ra của:

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

và có thể:

apt-cache show python2.7

...

Đọc đầu ra apt-cache từ pastebin của bạn, có vẻ như bạn có python2.7 2.7.3-0ubuntu3.1từ precise-updates/main cài đặt, nhưng python2.7-devlà từ precise/main. Tôi nghĩ rằng phương tiện cài đặt của bạn hoặc một "cập nhật apt-get" trước đó đã bao gồm precise-updateskho lưu trữ, nhưng nó không có trong nguồn.list hiện tại của bạn.

Tôi nghĩ bạn sẽ có thể cài đặt được sau khi thêm precise-updatesvà sau đó 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
Tôi đã dán câu trả lời apt-cache policy python2.7và tương tự ở đây: paste.ubfox.com/5775963
theJollySin

5

Bạn không nên cài đặt numpy với pip, hãy sử dụng gói Ubuntu cung cấp:

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

Đối với vấn đề thực tế của bạn: hãy thử cài đặt python2.7-dev. Nó có thể sẽ thất bại nhưng sẽ cung cấp cho bạn một thông báo lỗi tốt hơn.


Được rồi, tuyên bố đầu tiên của bạn: có những gói khác (như gdal) sẽ dễ dàng hơn nhiều nếu tôi có thể cài đặt qua PIP. Điểm thứ hai của bạn, tôi có thể thử điều đó và xem những gì sẽ xảy ra. Cảm ơn.
theJollySin

1
Tôi đồng ý rằng pip là một công cụ hữu ích, nhưng vui lòng bám vào các gói Ubuntu càng nhiều càng tốt, dễ dàng hơn để cập nhật. Và nếu bạn sử dụng pip để cài đặt các gói, bạn có thể muốn tạo cho mình một virtualenv để bạn không cần cài đặt như root vào / usr / local.
Dennis Kaarsemaker

Được rồi, tôi sẽ cố gắng bám vào các gói Ubuntu. Nhưng toàn bộ vấn đề này bắt đầu vì tôi có thể numpylàm việc tốt, nhưng không thể numpynhập được bên trong a virtualenv. Có một virtualenvhệ thống làm việc để phát triển Python chắc chắn là mục tiêu. Cảm ơn một lần nữa.
theJollySin

1
Tuy nhiên, đó là một câu hỏi khác :) Sử dụng virtualenv với --system-site-gói để có quyền truy cập vào những gì được cài đặt qua apt.
Dennis Kaarsemaker

3

giải pháp nhanh nhất:

  • Cài đặt ( sudo apt-get install synaptic) Trình quản lý gói Synaptic và khởi động nó
  • Nhấp vào Cài đặt-Kho lưu trữ
  • Chọn Tải xuống từ: Máy chủ chính
  • Nhấn vào đây Closevà nhấp vào Reload.
  • Đánh dấu python-devđể cài đặt và Synaptic cũng sẽ đánh dấu tất cả các phụ thuộc của python-dev( libexpat1-dev, libssl-dev, libssl-doc, python2.7-dev, zlib1g-dev).

Tôi vừa giải quyết vấn đề tương tự trên Ubuntu x86 12.04.3 mới cài đặt.


0

Đối với những người gặp phải vấn đề này, trước tiên hãy thử và chạy

sudo apt-get update

và thử cài đặt lại


Không cần thiết phải đưa ra giới thiệu như vậy. Chỉ cần đưa ra câu trả lời của bạn. Theo kinh nghiệm của tôi, không phải lúc nào cũng unmet dependencycó thể được giải quyết bằng cách sử dụngsudo apt-get update
Mostafa Ahangarha 19/03/2016
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.