1

在我的 ubuntu 12.04 上安装的独立 jython 中,运行它,但如果我尝试import gtk,我会no module named gtk在 python 控制台中运行它。

更新:

我已经做好了

>> sys.path.insert(1,"/usr/lib/python2.7/dist-packages/gtk-2.0")

>> sys.path.insert(1,'/usr/lib/python2.7/dist-packages")

现在是

    from glib._glib import *
ImportError: No module named _glib

什么时候:

argon@vprime:/usr/lib/python2.7$ find | grep _glib
./dist-packages/gi/_glib
./dist-packages/gi/_glib/option.pyc
./dist-packages/gi/_glib/option.py
./dist-packages/gi/_glib/_glib.so
./dist-packages/gi/_glib/__init__.pyc
./dist-packages/gi/_glib/__init__.py
./dist-packages/glib/_glib.so
./dist-packages/twisted/internet/test/test_glibbase.pyc
./dist-packages/twisted/internet/test/test_glibbase.py
./dist-packages/twisted/internet/_glibbase.py
./dist-packages/twisted/internet/_glibbase.pyc
./dist-packages/_dbus_glib_bindings.so

所以,glib/_glib在下面dist-packages,我不知道出了什么问题......

4

1 回答 1

1

并非所有模块都在 Jython 和 CPython(标准 Python 解释器)之间兼容。特别是,编译为原生字节码的模块,通常用 C/++(或 Cython)编写,不能用 Java 加载,因为它使用自己的虚拟机(JVM),无法理解原生字节码。

CPython 中的许多本机/二进制模块的名称都带有下划线前缀,例如上面的 _glib。

你至少有两个选择:

  • 使用 Jython 和 Java GTK 包。
  • 使用 CPython,如果您需要与 Java 对话,请使用 CPython 和 JVM 之间的接口包之一(例如jpypepy4j)。
于 2012-08-23T02:15:23.053 回答