[Geany-devel] Attempted python plugin

Oliver Marks oly at xxxxx
Wed Nov 10 21:44:45 UTC 2010


I Thought i would see if anyone on this list can help, i am no expert in
c or the build systems that are often used, however i managed to create
a small plugin in python which geany can run however i can not use gtk.

I have reduced the plugin down to its bare minimum it simple loads the
the python interpreter and imports gtk library.

If i do this outside the embeded python it imports and i can use the gtk
library, so why does it not work when embeded i am on ubuntu 10.10 64bit
if its a specific issue on this platform.

the code is below or you can get the code with the build system from the
link below, obviously to see the error you need to load the plugin into
geany.

I am guessing this is a linking issue just hoping someone can point me
in the right 

http://ubuntuone.com/p/Oh

#include <Python.h>          /* For Python itself. This MUST come first.
*/
#include "geany.h"      /* for the GeanyApp data type */
#include "geanyplugin.h"      /* for the GeanyApp data type */
#include "plugindata.h"     /* this defines the plugin API */

#define PLUGIN_NAME _("Geany Python Test")

PLUGIN_VERSION_CHECK(GEANY_API_VERSION)

/* All plugins must set name, description, version and author. */
PLUGIN_SET_INFO(PLUGIN_NAME, _("Test Python plugin."), _(VERSION),
_("Test Author"))


/* initialise the plugin */
void plugin_init(GeanyData *data){
    printf("Loading the test Python module.\n");
    Py_Initialize();    /* Start the Python interpreter. */
    PyRun_SimpleString("import gtk");
}

/* Cleanup the plugin when required */
void plugin_cleanup(void){
    Py_Finalize();
}




This is the error i get when launching the plugin in geany 

Loading the test Python module.
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/pymodules/python2.6/gtk-2.0/gtk/__init__.py", line 30,
in <module>
    import gobject as _gobject
  File "/usr/lib/pymodules/python2.6/gtk-2.0/gobject/__init__.py", line
26, in <module>
    from glib import spawn_async, idle_add, timeout_add,
timeout_add_seconds, \
  File "/usr/lib/pymodules/python2.6/gtk-2.0/glib/__init__.py", line 22,
in <module>
    from glib._glib import *
ImportError: /usr/lib/libpyglib-2.0-python2.6.so.0: undefined symbol:
PyExc_ImportError


Any one able to help, me or suggest some things i can try ??




More information about the Devel mailing list