问题描述
我在安装 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 dependencies 中的大多数内容。我正在运行 Ubuntu 12.04,并且已更新所有内容。我已经完成了 apt-get clean
和 apt-get autoclean
。我尝试了 apt-get -f install
以及该主题的所有变体。我已经清理了我的 PPA。我甚至尝试使用 Aptitude,尽管它做了很多清理工作,但结果是一样的。
我真的很想能够安装 python-dev。我该如何实现呢?目前,我愿意考虑极端的选择,无论它们是什么。
最佳方案
这部分:
python2.7-dev : Depends: python2.7 (= 2.7.3-0ubuntu3) but 2.7.3-0ubuntu3.1 is to be installed
这表明您正在使用一些不匹配的存储库,或者有一些 apt-pins 使版本依赖关系无法对齐。我认为,具体来说,python-2.7 2.7.3-0ubuntu3.1
位于 Precise-proposed
存储库中,而 2.7.3-0ubuntu3
版本位于 Precise/main 中,因此您可能更喜欢对某些软件包(但不是所有软件包)使用 -proposed。
您能否编辑您的问题以包含以下内容的输出:
apt-cache policy python2.7-dev
apt-cache policy python2.7
或许:
apt-cache show python2.7
…
从 pastebin 读取 apt-cache 输出,看起来您安装了来自 precise-updates/main
的 python2.7 2.7.3-0ubuntu3.1
,但 python2.7-dev
来自 precise/main
。我认为您的安装媒体或较早的“apt-get 更新”包含 precise-updates
存储库,但它不在您当前的 sources.list 中。
我认为您在添加 precise-updates
然后添加 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
次佳方案
您不应该使用 pip 安装 numpy,而应该使用 Ubuntu 提供的包:
dennis@koekblik:~$ apt-cache show python-numpy
Package: python-numpy
Priority: optional
Section: python
Installed-Size: 7616
...
至于您的实际问题:尝试安装 python2.7-dev
。它可能会失败,但应该会给您更好的错误消息。
第三种方案
最快的解决方案:
-
安装(
sudo apt-get install synaptic
)Synaptic 包管理器并启动它 -
点击 Settings-Repositories
-
选择下载自:主服务器
-
单击
Close
,然后单击Reload
。 -
标记
python-dev
进行安装,Synaptic 也将标记python-dev
(libexpat1-dev, libssl-dev, libssl-doc, python2.7-dev, zlib1g-dev
) 的所有依赖项。
我刚刚在新安装的 Ubuntu x86 12.04.3 上解决了同样的问题。