在Ubuntu 14.04.4 LTS上我尝试使用默认的python 3.4.3安装courseara-dl并遇到错误:
src/MD2.c:31:20: fatal error: Python.h: No such file or directory
#include "Python.h"
^
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
----------------------------------------
Failed building wheel for pycrypto
我看到一些答案提到安装python3.4-dev
来解决这个问题。但是存在依赖性错误:
The following packages have unmet dependencies:
python3.4-dev : Depends: python3.4 (= 3.4.0-2ubuntu1) but 3.4.3-1ubuntu1~14.04.3 is to be installed
Depends: libpython3.4-dev (= 3.4.0-2ubuntu1) but it is not going to be installed
Depends: libpython3.4 (= 3.4.0-2ubuntu1) but 3.4.3-1ubuntu1~14.04.3 is to be installed
Depends: libexpat1-dev but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
建议的解决方法是什么?我必须降级到python3.4.0
吗?如果是这样,那么这样做的正确方法是什么?
当我运行dpkg -l | grep python 3
时,我看到3.4.0和3.4.3。我应该试试apt-get uninstall 3.4.3
吗?
ii python3 3.4.0-0ubuntu2 amd64 interactive high-level object-oriented language (default python3 version)
ii python3.4 3.4.3-1ubuntu1~14.04.3 amd64 Interactive high-level object-oriented language (version 3.4)
答案 0 :(得分:1)
根据这个:http://packages.ubuntu.com/trusty/python3来自Ubuntu的官方默认python3版本14.04是3.4.0。根据这个:http://packages.ubuntu.com/trusty-updates/python3.4新版本来自更新仓库。发行版通常有一个基础仓库和一个更新的包与更新的包(Fedora也这样做)。不知怎的,你安装了这两个,可能是因为aptitude在某种程度上失败了。
这里有两个选项:
这里有另一种可能性,即python3.4-dev是使用错误的依赖构建的,或者在构建时收集了错误的依赖项,但是你的输出似乎暗示了其他。
另一种可能性,这将是一个令人头疼的问题,如果apt正在努力正确识别python3.4-dev的依赖关系。
答案 1 :(得分:0)
我不记得我的Ubuntu中是如何得到python 3.4.3的,也许是通过ubuntu自动升级?
问题是libexpat1
:
apt-cache policy libexpat1
libexpat1:
Installed: 2.1.0-4ubuntu1.1
Candidate: 2.1.0-4ubuntu1.1
Version table:
*** 2.1.0-4ubuntu1.1 0
100 /var/lib/dpkg/status
2.1.0-4ubuntu1 0
500 http://us.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
python3-dev需要版本2.1.0-4ubuntu1
,并且已安装版本2.1.0-4ubntu1.1
。
我也删除了python3.4.3并且不得不重新安装python3(python3.4.0)。
之后,我可以安装python3-dev
。
我的python2存在类似的问题,其中我有python2.7.6但python-dev
需要python2.7.5
。因为我目前还没有真正使用它,所以我没有降级python2。
感谢@ matt-schuchard Matt Schuchard指出方向。我仍然不确定一切是否正确,但至少我能够安装python3-dev
。