在Ubuntu14.04中添加Python.h和/或python3dev的正确方法是什么?

2024-10-01 02:36:12 发布

您现在位置:Python中文网/ 问答频道 /正文

在Ubuntu 14.04.4 LTS上,我试图用默认的Python3.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来解决这个问题。但存在依赖性错误:

^{pr2}$

建议的解决方法是什么?我必须降级到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)

Tags: objectversionubuntu错误errorlevellanguageamd64
2条回答

根据这一点:http://packages.ubuntu.com/trusty/python3来自Ubuntu的14.04官方默认python3版本是3.4.0。根据这一点:http://packages.ubuntu.com/trusty-updates/python3.4更新版本来自更新存储库。发行版通常有一个基本的repo和更新的包(Fedora也这样做)。不知怎么的,你安装了这两个,可能是因为这里的天赋在某种程度上失败了。在

这里有两个选项:

  1. 删除python3.4的更新包,这样就可以使用默认的python-dev
  2. 删除python3的默认包,这样就可以使用python3.4-dev更新

这里还有另一种可能,即python3.4-dev是使用错误的依赖项构建的,或者在构建时收集了错误的依赖项,但是您的输出似乎暗示了其他情况。在

另一种可能会让人头疼,那就是apt是否在正确识别python3.4-dev的依赖性方面失败

我不记得我是怎么把python3.4.3放到我的Ubuntu中的,也许是通过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

python3dev需要版本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,因为我现在还没有真正使用它。在

谢谢马特·舒查德的指点。我仍然不能确定一切都是正确的,但至少我能够安装python3-dev。在

相关问题 更多 >