【问题标题】:Fatal error while compiling PyQt5: Python.h does not exist编译 PyQt5 时出现致命错误:Python.h 不存在
【发布时间】:2013-07-15 22:51:21
【问题描述】:

我正在尝试在我的 Ubuntu 12.04 机器上安装 PyQt5。所以在从here 下载它之后,我解压了它,运行python configure.pymake。但是,结果如下:

cd qpy/ && ( test -f Makefile || /opt/qt5/bin/qmake /home/kram/Downloads/PyQt-gpl-5.0/qpy/qpy.pro -o Makefile ) && make -f Makefile 
make[1]: Map '/home/kram/Downloads/PyQt-gpl-5.0/qpy' is entered
cd QtCore/ && ( test -f Makefile || /opt/qt5/bin/qmake /home/kram/Downloads/PyQt-gpl-5.0/qpy/QtCore/QtCore.pro -o Makefile ) && make -f Makefile 
make[2]: Map '/home/kram/Downloads/PyQt-gpl-5.0/qpy/QtCore' is entered
g++ -c -pipe -fno-strict-aliasing -O2 -Wall -W -fPIC -D_REENTRANT -DQT_NO_DEBUG -DQT_CORE_LIB -I/opt/qt5/mkspecs/linux-g++ -I. -I. -I../../QtCore -I/usr/local/include/python2.7 -I/opt/qt5/include -I/opt/qt5/include/QtCore -I. -o qpycore_chimera.o qpycore_chimera.cpp
qpycore_chimera.cpp:21:20: fatal error: Python.h: File or folder does not exist
compilation terminated.
make[2]: *** [qpycore_chimera.o] Error 1
make[2]: Map '/home/kram/Downloads/PyQt-gpl-5.0/qpy/QtCore' is left
make[1]: *** [sub-QtCore-make_first] Error 2
make[1]: Map '/home/kram/Downloads/PyQt-gpl-5.0/qpy' is left
make: *** [sub-qpy-make_first-ordered] Error 2

(我将错误信息的某些部分从荷兰语翻译成英语,所以有些词可能与正常措辞有点不同..)

请问有什么问题吗?相关的 Python.h 文件在哪里?

【问题讨论】:

    标签: python qt installation pyqt qt5


    【解决方案1】:

    问题是每个 Makefile 中所有 python 头文件的包含路径都指向 /usr/local/include/python2.7 ,应该是 /usr/include/python2.7

    对此有 2 种可能的解决方案。您可以更改每个 Makefile 中所有出现的 this,或者您可以创建指向该位置的符号链接

    sudo ln -s /usr/include/python2.7 /usr/local/include/python2.7
    

    现在你可以运行make

    【讨论】:

      【解决方案2】:
      sudo apt-get install python-dev
      

      您缺少 python 头文件。

      【讨论】:

      • 我也这么认为,但我已经安装好了。运行您的命令后,它说 python-dev 已经是最新版本。
      • 你安装的是什么版本,你有什么版本的python-dev
      • 我不完全知道如何查看python-dev的版本,但是我跑了sudo apt-get install python2.7-dev,它也告诉我我得到了最新版本。
      • Python.h 在您的包含目录中吗?库是否已注册(ldconfig)?它是正确的版本吗?你试过手动设置python的路径吗?
      • 尝试运行locate Python.h。如果没有给出结果运行find / -type f -name "Python.h" 2>/dev/null。这是您的文件所在的位置。将此路径添加到包含正确参数的调用 python configure.py 的目录中。检查已知参数的配置帮助。
      【解决方案3】:

      您遇到的问题是 PyQt 假定您没有使用发行版的托管 python,而是默认在 /usr/local/include/python2.7 中寻找 sip。

      幸运的是,configure.py 提供了覆盖 python 和 sip 包含位置的选项:

      python configure.py --sip-incdir /usr/include/python2.7 py_inc_dir=/usr/include/python2.7
      

      此解决方案应优先于将/usr/include/python2.7 符号链接到/usr/local/include/python2.7,因为这将使手动安装的软件污染(或损坏安装到)发行版管理的路径。

      【讨论】:

        【解决方案4】:

        QTCreator 和 Anjuta IDE 中的项目目录下最好都添加已有的头文件。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-08-20
          • 1970-01-01
          • 1970-01-01
          • 2021-09-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多