无法在 Linux 上构建 PYQT

Posted

技术标签:

【中文标题】无法在 Linux 上构建 PYQT【英文标题】:Can't build PYQT on Linux 【发布时间】:2014-06-08 16:15:48 【问题描述】:

我在 redhat 6 上使用 python2.7 构建 pyqt4。我已经从源代码中安装了 python2.7,它适用于我尝试过的所有其他东西。当我运行python2.7 configure.py 时,出现以下错误:

\# python2.7 configure.py

确定 Qt 安装的布局... 错误:无法确定 Qt 安装的布局。使用--verbose 标志重试 以查看有关该问题的更多详细信息。

我已经读到解决这个问题的方法是发出以下命令,这似乎有效:

\# python2.7 configure.py --qmake /usr/bin/qmake-qt4 -g

这已成功完成。但是当我运行 make 时,我得到了以下错误。

make[1]: Entering directory /root/Downloads/PyQt-x11-gpl-4.11/qpy<br />
make[2]: Entering directory /root/Downloads/PyQt-x11-gpl-4.11/qpy/QtCore<br />
g++ -m64 -Wl,-O1 -o w_qpycore      -lQtGui -lQtCore -lpthread<br />
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crt1.o:<br />
In function _start: (.text+0x20): undefined reference to main<br />
collect2: ld returned 1 exit status<br />
make[2]: [w_qpycore] Error 1<br />
make[2]: Leaving directory /root/Downloads/PyQt-x11-gpl-4.11/qpy/QtCore<br />
make[1]: \*\*\* [all] Error 2<br />
make[1]: Leaving directory /root/Downloads/PyQt-x11-gpl-4.11/qpy<br />
make: \*\*\* [all] Error 2<br />

感谢您的帮助。 - 标记

【问题讨论】:

【参考方案1】:

和你有同样的问题。被告知我们应该改用“configure-ng.py”,但是当我运行它时出现此错误:

    Querying qmake about your Qt installation...
    Determining the details of your Qt installation...
    An internal error occured.  Please report all the output from the program,
    including the following traceback, to support@riverbankcomputing.com.
    Traceback (most recent call last):
      File "configure-ng.py", line 2816, in <module>
        main(sys.argv)
      File "configure-ng.py", line 2780, in main
        target_config.from_introspection(opts.verbose, opts.debug)
      File "configure-ng.py", line 695, in from_introspection
        self.qt_shared = (lines[1] == 'shared')
    IndexError: list index out of range

编辑——想通了。

原来我在本地安装了 Qt 4.6,而安装程序期待的是 Qt 4.7+(尽管错误消息没有这么说)。我使用这些存储库安装了 Qt 4.8(在 CentOS 6 上工作):https://lists.fedoraproject.org/pipermail/fedora-kde/2013-March/012437.html

添加这些存储库后,我刚刚执行了 yum install qt qt-devel 并将我的 Qt 从 4.6 升级到 4.8

在本地获取 Qt 4.8 后,cd 到 PyQt4 源文件并:

    1. python configure-ng.py
    2. make
    3. make install

EDIT2:原来我们需要 Qt 4.7。经过一番研究,事实证明这些版本很幸福:

   PyQt 4.10.4
   SIP 4.15.4
   QT 4.7.4

Qt 4.7 RPM 可以在这里找到:http://joseph.freivald.com/linux/2011/09/23/qt-4-7-4-and-qt-creator-2-3-0-for-centosrhel-5/

PyQt 4.11 不适用于 Qt 4.7(至少对我来说,我在 CentOS 6.4 上) 对于这些版本,只需按照上述 1、2、3 步骤操作即可。

【讨论】:

以上是关于无法在 Linux 上构建 PYQT的主要内容,如果未能解决你的问题,请参考以下文章

PyQt5 应用在 TeamViewer 下无法使用全屏模式

使用 PyQt5 构建并由 pyinstaller 编译的 GUI 无法正常工作 [不重复] [重复]

使用 cx_Freeze、PyQt5、Python3 构建的 exe 无法导入 ExtensionLoader_PyQt5_QtWidgets.py 并运行

在 macOS 上安装 PyQt4 时 C++ 标准库出现问题

无法在 OS X 上安装 PyQt 5

无法在嵌入式Linux上构建MonoDevelop