I am trying to write a plug-in for Audacious Media Player that loads a python module. The python embedding code is from the python-2.6
source(embed/Demo). This compiles with the command line,
gcc -o demo demo.c -lpython2.6 -lm -L/usr/lib/python2.6/config
I added -lpython2.6 -lm -L/usr/lib/python2.6/config
to the CC args.
And it loads a Python script which imports pygtk
and gtk
modules, this works fine.
But after I compile the plug-in(a shared library) the following error occurs(this is not specific for gtk
as I found out, it's the same for any python module that uses native libraries)
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "./xyz.py", line 7, in <module>
import gtk
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
The C code for setting up python interpreter only lacks the PySys_SetArgv
call. I tried to fake it but it resulted in the same error!