我正在尝试在我的ubuntu系统中使用pygtk安装python。
我没有超级用户权限,所以我需要在本地安装所有软件包,例如/ home / user / local / lib
我能够安装python,但是我无法将其他软件包(pygobject,pygtk等)链接到本地安装的python。 如果我尝试使用命令
在本地安装pygtk./configure --prefix=/home/shrihari/local/lib/pygtk2.24/
它出现以下错误
checking for GLIB - version >= 2.8.0... yes (version 2.28.6)
checking for PYGOBJECT... yes
checking for gio-types.defs... no
checking for ATK... yes
checking for PANGO... yes
checking for codegen... configure: error: unable to find PyGObject codegen
我的默认python版本是python2.4。如果我尝试在python2.4中导入pygtk它工作正常但我需要在python2.7中的pygtk。 那我该怎么做呢? 如果有任何好的文档可用于在用户空间本地安装python,pygtk,pygobject请分享。
提前致谢
答案 0 :(得分:1)
一般情况下,为了能够将构建链接到已安装的东西,您需要将LD_LIBRARY_PATH和(对于Python模块)PYTHONPATH设置为已安装该目录的目录""。所以在这个例子中,如果你安装带有前缀/ home / shrinari / local / python27的Python 2.7,你需要事后设置这样的系统变量(对于bash):
export LD_LIBRARY_PATH=/home/shrinari/local/python27/lib:$LD_LIBRARY_PATH
export PYTHONPATH=/home/shrinari/local/python27/lib/python2.7/site-packages:$PYTHONPATH
export PKG_CONFIG_PATH=/home/shrinari/local/python27/lib/pkgconfig:$PKG_CONFIG_PATH
之后,您可以尝试编译依赖于新Python安装的内容。 但是,根据提供的配置错误,我认为这对您的情况没有帮助。看起来PyGObject中缺少一些东西,可能只是头文件,也许是一些模块(我不知道PyGObject的细节)。无论如何,配置脚本无法找到的东西通常可以从config.log文件中更好地看到,该文件可以在运行configure脚本后在build目录中找到。
答案 1 :(得分:1)
此错误是由于pygobject和gobject-retrospection之间的兼容性。为了避免这种情况,如果您的GTK旧了,请使用早于2.90.1的Pygobject构建。我在CentOS 5.5上使用了以下功能 -
pygobject-2.28.6 使用--disable-introspection
gobject-retrospection 1.32.1