【问题标题】:PyQt5 error during "python3 configure.py": fatal error: 'qgeolocation.h' file not found“python3 configure.py”期间的 PyQt5 错误:致命错误:找不到“qgeolocation.h”文件
【发布时间】:2016-01-31 11:27:56
【问题描述】:

MAC OSX 10.9、Python 3.5、sip-4.17、PyQt-gpl-5.5.1、Qt5.5.1

嗨, 尝试在我的系统上构建 PyQt 我执行了以下步骤:

  1. 下载/安装 Qt5.5.1 库
  2. 下载/解压 SIP
  3. 下载/解压 PyQt
  4. 安装 SIP:

    python3 configure.py -d /Library/Python/3.5/site-packages --arch x86_64
    
    make
    
    sudo make install
    
  5. 尝试安装 PyQt:

    python3 configure.py -d /Library/Python/3.5/site-packages
                                   --qmake /.../Qt5.5.1/5.5/clang_64/bin/qmake
    

配置停止:

    /Users/werner/OpenSource/PyQt/sip/QtPositioning/qgeolocation.sip:28:10:
                             fatal >error: 'qgeolocation.h' file not found
     #include <qgeolocation.h>
               ^
      1 error generated.
      make[1]: *** [sipQtPositioningcmodule.o] Error 1
      make: *** [sub-QtPositioning-make_first-ordered] Error 2

我尝试完成安装

make
sudo make install

无论如何。但是安装似乎并不完整(例如缺少uic、pyuic5)。这是我的安装目录的样子:

>ls /Library/Python/3.5/site-packages/PyQt5
QtBluetooth.so          QtSensors.so
QtCore.so               QtSerialPort.so
QtDBus.so               QtSql.so
QtDesigner.so           QtSvg.so
QtGui.so                QtTest.so
QtHelp.so               QtWebKit.so
QtMacExtras.so          QtWebKitWidgets.so
QtMultimedia.so         QtWidgets.so
QtMultimediaWidgets.so  QtXml.so
QtNetwork.so            QtXmlPatterns.so
QtOpenGL.so             _QOpenGLFunctions_2_0.so
QtPrintSupport.so       _QOpenGLFunctions_2_1.so
QtQml.so                _QOpenGLFunctions_4_1_Core.so
QtQuick.so

在搜索其他讨论时,我找不到任何有用的信息,所以我希望有人能给我一个提示,告诉我我做错了什么(也许是愚蠢的)。感谢您抽出时间来阅读。

【问题讨论】:

  • xcode 是最新的吗?
  • 它是 XCode 6.1.1,在安装 Qt、SIP、PyQt5 之前安装了最新的命令行工具。
  • 我在 Mint 17 下遇到了同样的问题。我注意到这个问题不到一周,所以我想知道这是否是安装程序的问题。
  • 顺便说一句,看起来 xcode 是苹果的东西,因此与我的情况无关?
  • 如果你不是在 OSX 上工作,那是无关紧要的

标签: python macos pyqt5


【解决方案1】:

您也可以从您的 qt 源文件夹中获取头文件(您已将源文件与二进制文件一起安装,对吗?),它位于此处:

/Src/qtlocation/src/positioning/qgeolocation.h

然后将其复制到:

/PyQt-gpl-X.X.X/QtPositioning/qgeolocation.h

如下。它应该可以解决 99.9% 的问题。

【讨论】:

    【解决方案2】:

    在 /PyQt-gpl-5.5.1/QtPositioning 中创建 qgeolocation.h 的方式对我有用。创建了 QtPositioning.so。

    【讨论】:

    • 你能扩大你的答案吗?我不认为这提供了一个完整的答案。你能解释一下这种创建qgeolocation.h的方法吗?
    【解决方案3】:

    如果您不需要此模块,解决此问题的更好方法是在配置时禁用它。

    python configure.py --disable=QtPositioning
    

    【讨论】:

      【解决方案4】:

      在 OSX 10.11.1 上为我添加 location.h 头文件。 我在 PyQt-gpl-5.5.1 和 PyQt-gpl-5.5.2 中都遇到了问题,但是在添加了 文件,能够构建。

      【讨论】:

        【解决方案5】:

        就在昨天,我也遇到了这样的问题。这就是我要解决的问题:

        在/PyQt-gpl-5.5.1/QtPositioning中创建头文件qgeolocation.h,将this website中的内容复制到其中。然后我去 sudo make 和 sudo make install 成功。

        虽然不知道解决这个问题对不对,但还好我安装了PyQt,进入eric6。希望你也成功。

        【讨论】:

        • 我尝试了这种方法但没有成功 - 还将 location.h 复制到有问题的几个目录中,例如 /PyQt-gpl-5.5.1/sip/QtPositioning。我还以各种方式更改了 PATH 和 PYTHONPATH,但一无所获。但是,过了一段时间,我决定只删除整个QTPositioning目录(也就是上面提到的那个和/PyQt-gpl-5.5.1/QtPositioning)
        • 在整个过程顺利之后,安装似乎工作。当然,它缺少已删除的功能。现在,我可以忍受。
        • 非常感谢。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-10-02
        • 2015-01-20
        • 2014-12-21
        • 2013-12-10
        • 1970-01-01
        • 1970-01-01
        • 2022-07-13
        相关资源
        最近更新 更多