在 Lion (OSX) 上安装 PyQt4 时出现问题

Posted

技术标签:

【中文标题】在 Lion (OSX) 上安装 PyQt4 时出现问题【英文标题】:Problems installing PyQt4 on Lion (OSX) 【发布时间】:2011-11-09 16:18:22 【问题描述】:

我正在尝试在带有 Lion 的 Mac 上安装 python IDE eric4。我已经安装了 PyQt-mac-gpl-4.8.6、QT-1.1.4 和 SIP-4.13。当我导航到下载eric4 的文件夹并运行命令sudo python install.py 时,我收到以下消息:

Checking dependencies
Python Version: 2.7.1
Found PyQt4
Sorry, please install QtHelp.
Error: No module named QtHelp

如何安装 QtHelp 模块?我使用带有默认选项的 QT 安装程序。当我使用自定义选项重新安装它时,我无法在任何地方看到列出的帮助文件。


编辑:

回想起来,我意识到这与 Eric 无关,而是我无法安装 PyQT4。 当我运行这条线时:

python2.7 configure.py -w -g -q /Users/cel/QtSDK/Desktop/Qt/474/gcc/bin/qmake

我得到以下输出:

Checking to see if the QtHelp module should be built...
g++ -DQT_NO_DEBUG -I. -I/Users/cel/QtSDK/Desktop/Qt/474/gcc/mkspecs/default -I/Users/cel/QtSDK/Desktop/Qt/474/gcc/lib/QtHelp.framework/Headers -I/Users/cel/QtSDK/Desktop/Qt/474/gcc/include -pipe -O2 -w cfgtest_QtHelp.cpp -o cfgtest_QtHelp -F/Users/cel/QtSDK/Desktop/Qt/474/gcc/lib -L/Users/cel/QtSDK/Desktop/Qt/474/gcc/lib -headerpad_max_install_names -framework QtHelp
Undefined symbols for architecture x86_64:
  "QString::fromAscii_helper(char const*, int)", referenced from:
      _main in ccPUS9BG.o
  "QString::free(QString::Data*)", referenced from:
      _main in ccPUS9BG.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

也许这是由于在Lion 上编译此版本的 PyQT4 时出现问题?

【问题讨论】:

你用的是什么版本的pyqt、sip和eric? @ekhumoro 我刚刚更新了我的问题。 PyQt4 的精确版本是多少?您是否自己编译了所有内容(Qt 除外)? @ekhumoro 我正在使用 PyQt-mac-gpl-4.8.6。是的,我自己编译了除 Qt 之外的所有内容。 它看起来像Qt does not officially support Lion,但这并不一定意味着它不能完成。这可能没有什么区别,但请尝试将--use-arch x86_64 添加到您的configure 命令中。如果这没有任何改变,我建议您尝试在PyQt mailing list 上提问(并确保在您的帖子中包含配置脚本的完整、详细的输出)。 【参考方案1】:

首先,检查QtHelp模块是否真的安装了。

在控制台中运行此命令以查找 PyQt4 包的位置:

python2.7 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"

在结果目录中查找任何PyQt4/QtHelp.* 文件。如果那里什么都没有,请使用 verbose 标志再次运行 PyQt4 的配置:

$ make clean
$ python2.7 configure.py -w

这应该会给出一些错误消息,指出QtHelp 模块的配置失败的原因。这很可能是因为缺少一些必需的库或构建工具。

【讨论】:

感谢您的建议; QtHelp 不存在。我看到一条消息显示this version of PyQT4 was not supported for the current OS,但没有出现错误。但是它似乎阻止了QtHelp 的安装。 @celenius。您确定您使用的是right source code 吗?另外,当你运行configure.py -w时,在确认许可证后,应该有一行Checking to see if the QtHelp module should be built...。之后会发生什么? 嗯,我使用了这个PyQt-mac-gpl-4.8.6.tar.gz,我认为它是正确的版本,即使我使用的是Lion。我刚刚在Checking to see if the QtHelp.... 之后收到的消息中添加了我的问题;问题就在那里。【参考方案2】:

我在邮件列表中找到了某事,并且对我来说工作正常:)

我不得不用这一行修补配置脚本,所以 qthelp 模块在构建时加载 qtcore 库。

--- PyQt-x11-gpl-4.9/configure.py~ 2011-12-23 14:53:07.981490550 +0100 +++ PyQt-x11-gpl-4.9/configure.py 2011-12-23 14:52:38.384984221 +0100 @@ -1264,7 +1264,7 @@ opengl = (mname == "QtOpenGL")

qt = [mname]

- 如果 mname 在 ("QtOpenGL", "QtWebKit"): + if mname in ("QtHelp", "QtOpenGL", "QtWebKit"): qt.append("QtCore")

makefile = sipconfig.ProgramMakefile(sipcfg, console=1, qt=qt,
warnings=0,

对我来说很好。

【讨论】:

以上是关于在 Lion (OSX) 上安装 PyQt4 时出现问题的主要内容,如果未能解决你的问题,请参考以下文章

在 OSX Lion 10.7.3 上安装 pyUSB 0.4.3

在 OSX Lion 上将 mod_wsgi 安装到 XAMPP

win7安装Mac OSX Lion懒人版的问题

在 Lion 上安装 MySQLdb 时遇到困难 - 导入找不到模块

MAC OSX LION:mac 上的 gcc 未编译 wget

pg gem 安装错误 - lion osx、bundler 和 rvm