Hi,

Am stumbling on a very rudimentary problem and am totally not able to proceed. Googling did not help me much and hence am trying to state the problem in its entirety.  Any quick comments/hints would be highly helpful.

Am getting the following error when i try to import the module (class) into python :

$python
>>> import myClass
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
ImportError: ./myClass.so: undefined symbol: PyUnicodeUCS4_FromEncodedObject


Environment:
g++ (GCC) 4.0.0 20050519 (Red Hat 4.0.0-8)
Python 2.4.3

Other Information:
$ldd myClass.so
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00db8000)
        libm.so.6 => /lib/tls/libm.so.6 (0x002b3000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00eb7000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0x0057a000)
        libc.so.6 => /lib/tls/libc.so.6 (0x00b6f000)
        /lib/ld-linux.so.2 (0x00712000)

Files Used :


myClass.cpp
-------------
#include <boost/python.hpp>
#include <boost/python/def.hpp>
#include <boost/python/tuple.hpp>
#include <boost/python/dict.hpp>
#include <boost/python/module.hpp>
#include <boost/python/raw_function.hpp>
#include <string>

class Var
{
 public:
  int value;
  std::string name;
  Var(std::string n)
  {
   name=n;
   value=10;
  }
};

std::string processObj(boost::python::object x)
{
 Var obj=boost::python::extract<Var>(x);
 return obj.name;
}

using namespace boost::python;
BOOST_PYTHON_MODULE(myClass)
{
 class_<Var>("Var", init<std::string>())
  .def_readonly("name", &Var::name)
  .def_readwrite("value", &Var::value);

 def("processObj", processObj);
}


setup.py
---------------
from distutils.core import setup
from distutils.extension import Extension
setup(name="myvaarg",ext_modules=[Extension("myvaarg",["sample.cpp"],libraries=["boost_python"])])

$python setup.py build

--
Venkat