在Mac OS 10.6.3上安装PyGTK的依赖项时出错

时间:2010-05-16 02:41:32

标签: python macos pygtk gettext glib

我尝试在Mac OS 10.6.3上为PyGTK 2.16.0(Python GIMP工具包)安装以下依赖项:

  • glib 2.25.5
  • 的gettext-0.18
  • libiconv的-1.13.1

当我尝试安装glib时,收到以下错误消息:

gconvert.c:55:2: error: #error GNU libiconv not in use but included iconv.h is from libiconv

libiconv网页讨论了gettext和libiconv之间的循环依赖关系---构建一个,然后构建另一个,然后再次构建第一个。我试图这样做,虽然可能不正确。 (以下工作:make distclean; ./configure; make; sudo make install?)

posting的作者有同样的问题,他通过安装libiconv-1.13.1解决了这个问题。

任何人都可以更详细地解释错误,以及如何纠正错误?

4 个答案:

答案 0 :(得分:2)

虽然这是一个老问题,但仍想分享对我有用的解决方案。

导航到'glib'文件夹(只是普通的glib,主glib源文件夹的一个INSIDE),并用您喜欢的编辑器打开'gconvert.c'。

#if defined(USE_LIBICONV_GNU) && !defined (_LIBICONV_H)
#error GNU libiconv in use but included iconv.h not from libiconv
#endif

#if !defined(USE_LIBICONV_GNU) && defined (_LIBICONV_H)
#error GNU libiconv not in use but included iconv.h is from libiconv
#endif

替换最后3行,如下所示:

#if defined(USE_LIBICONV_GNU) && !defined (_LIBICONV_H)
#error GNU libiconv in use but included iconv.h not from libiconv
#endif

#if !(defined(__APPLE__) && defined(__LP64__)) && !defined(USE_LIBICONV_GNU) && defined (_LIBICONV_H)
#error GNU libiconv not in use but included iconv.h is from libiconv
#endif

来源: http://letsneverdie.net/blog/?p=75

答案 1 :(得分:0)

错误消息的原因是,如果您在OS X上针对当前(~10.6.3)系统安装的libiconv版本构建glib,则需要将--with-libiconv = gnu传递给glib configure脚本。但是,GTK-OSX构建脚本默认不会传递此内容。

简单的解决方案是下载最新的libiconv(http://www.gnu.org/software/libiconv/#downloading),并将GTK安装的位置作为安装前缀传递,以配置例如:

$ cd libiconv-1.13.1/
$ ./configure --prefix=/Users/jamie/gtk/inst/
$ make && make install

使用此版本的libiconv,似乎您不需要将-with-libiconv = gnu传递给glib configure,因此您现在可以通过重新运行glib configure阶段继续GTK-OSX构建过程

答案 2 :(得分:0)

由于我看过很多关于MacPorts包管理器的可靠性低于Fink包管理器的报告,我建议安装Fink,然后再做

fink list pygtk  # Lists all pygtk packages
fink install pygtk2-gtk-py27  # This one, or the one that corresponds to your (Fink) Python

最重要的是,Fink让您可以访问比MacPorts更多的软件包。

我认为"投资"如果您打算使用开源程序,那么在软件包管理器中是必须的。

答案 3 :(得分:-1)

在Mac上,如果您要安装GTK +,PyGTK或某些其他程序,可以下载MacPorts

在终端中,键入port search gtk以搜索与GTK +相关的程序。您需要连接互联网。

键入sudo port install gtk2以安装GTK + 2。 MacPorts将查找并安装任何依赖项。

键入port installed以查看使用MacPorts安装的程序。

相关问题