更新

更新

我的 RHEL 服务器上安装了两个 python,一个是版本 2.4.x(这是 RHEL 的常规安装,使用 进行更新yum),另一个是 2.6.x 版本,我将其用于 Django 以及日常脚本(从源代码安装)。

我想让 rsvg 库适用于 Python 2.6.x。它已存在于 Python 2.4.x 中,并存储在此处/usr/lib64/python2.4/site-packages/gtk-2.0/rsvg.so

我的第二个 python 安装在这里/opt/python2.6

理想情况下,我想做到这一点而不必完全重新安装 Python 2.6!

更新

尝试安装整个 gnome-python-desktop 包,但

checking for PYGTK... configure: error: Package requirements (pygtk-2.0 >= 2.4.0) were not met.

说真的,我想要的只是 python-rsvg。这肯定是可以实现的,而不需要安装世界上所有的软件包。

更新 #2

我运行这个程序来获取我所理解的必要依赖项:

$ yum install pygobject2 pygobject2-devel librsvg2 librsvg2-devel pygtk2 pygtk2-devel

运行./configure --disable-allbindings --enable-rsvg将返回一条消息,提示将构建的唯一模块是metacity

更新 #3

尝试使用提供的配置选项安装 gnome-python-desktop。运行make结果出现错误:

metacity.c: In function 'pymetacity_add_constants':
metacity.c:955: error: 'META_CURSOR_MOVE_WINDOW' undeclared (first use in this function)
metacity.c:955: error: (Each undeclared identifier is reported only once
metacity.c:955: error: for each function it appears in.)
metacity.c:956: error: 'META_CURSOR_RESIZE_WINDOW' undeclared (first use in this function)
make[2]: *** [metacity_la-metacity.lo] Error 1
make[2]: Leaving directory `/tmp/gnome-python-desktop-2.13.3/metacity'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/gnome-python-desktop-2.13.3'
make: *** [all] Error 2

configure在 pygobject 2.26.0(最新稳定版本?)上运行:

checking for GLIB - version >= 2.22.4... no
*** Could not run GLIB test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means GLIB is incorrectly installed.
configure: error: maybe you want the pygobject-2-4 branch?

make在 glib 2.26.0 上运行:

/usr/bin/msgfmt -o test.mo ./de.po; \
    /bin/mkdir -p de/LC_MESSAGES; \
    cp -f test.mo de/LC_MESSAGES
./de.po:15: keyword "msgctxt" unknown
./de.po:15:8: parse error
/usr/bin/msgfmt: found 2 fatal errors
cp: cannot stat `test.mo': No such file or directory
make[4]: *** [test.mo] Error 1
make[4]: Leaving directory `/tmp/glib-2.26.0/gio/tests'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/tmp/glib-2.26.0/gio'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/tmp/glib-2.26.0/gio'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/glib-2.26.0'
make: *** [all] Error 2

这真是让人沮丧!有没有办法不用安装所有东西就能做到这一点?

答案1

export PYTHONPATH=/opt/python2.6
export PATH=/opt/python2.6/bin:$PATH

然后configure/ make/ make installpython-rsvg 模块(来自 gnome-python-desktop),它就可以工作了。

如果您只想要 rsvg 模块而不想要其余模块,那么您可以使用./configure --disable-allbindings --enable-rsvg

并确保你已经librsvg2-devel安装了该软件包,否则无论你给出多少个--enables,模块都不会构建。:)

更新:

显然,上面的更新 #2 阶段出了问题,它./configure告诉您它正在执行一些与它所说的不同的事情。特别是,配置帮助中指出 metacity 绑定维护不善。

我不太确定哪里出了问题——configure 的(长)输出中有什么有用的信息吗?或者,您可以尝试使用waf而不是 configure/make。运行:

./waf configure --enable-modules=rsvg
./waf
./waf install

(请注意,--disable-allbindings 不是必需的。)

第一行应该告诉您只会构建 rsvg。

进一步更新:

使用这种方法,您将需要将 pygtk 和 pycairo 内置到您的/opt/python2.6树中。这可能是配置失败的原因。

相关内容