在Lion(OSX)上安装PyQt4的问题

时间:2011-11-09 16:18:23

标签: python macos install osx-lion pyqt4

我正在尝试使用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时遇到问题?

2 个答案:

答案 0 :(得分: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模块的配置失败的原因。这很可能是因为缺少一些必需的库或构建工具。

答案 1 :(得分:1)

我在邮件列表上找到了,对我来说工作正常:)

  

我必须使用此行修补配置脚本,以便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 in(“QtOpenGL”,“QtWebKit”):   +如果mname in(“QtHelp”,“QtOpenGL”,“QtWebKit”):           qt.append( “QtCore”)

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

对我来说很好。