Got undefined symbol: _PyUnicodeUCS2_AsDefaultEncodedString onOpenSuSE 11.1

Discussion in 'Python' started by Alejandro Valdez, Sep 25, 2009.

  1. Hello I sent this e-mail to the python-help list but I'm not sure if
    that list is active... so I post it again here:

    I'm trying to build Python 2.6.2 from the sources downloaded from the
    python official site on OpenSuSE 11.1 (32 bit). After installation the
    python command line interpreter seems to run ok, but when I try to
    install setuptools I get:

    user@linux-ba2a:~/tmp> bash setuptools-0.6c9-py2.6.egg
    --install-dir=/home/user/python/lib/python2.6/site-packages/
    Traceback (most recent call last):
     File "<string>", line 1, in <module>
     File "/home/user/tmp/setuptools-0.6c9-py2.6.egg/setuptools/command/easy_install.py",
    line 15, in <module>
     File "/home/user/tmp/setuptools-0.6c9-py2.6.egg/setuptools/sandbox.py",
    line 1, in <module>
    ImportError: /home/user/python/lib/python2.6/lib-dynload/operator.so:
    undefined symbol: _PyUnicodeUCS2_AsDefaultEncodedString


    To compile Python I executed:

    ../configure --prefix=/home/user/python
    ../make
    ../make install

    The compile process seems to be ok, so I'm kind of clueless :-(

    Any ideas?
    Alejandro Valdez, Sep 25, 2009
    #1
    1. Advertising

  2. On Sep 25, 7:05 pm, Alejandro Valdez <>
    wrote:
    > Hello I sent this e-mail to the python-help list but I'm not sure if
    > that list is active... so I post it again here:
    >
    > I'm trying to build Python 2.6.2 from the sources downloaded from the
    > python official site on OpenSuSE 11.1 (32 bit). After installation the
    > python command line interpreter seems to run ok, but when I try to
    > install setuptools I get:
    > [...]
    > To compile Python I executed:
    >
    > ./configure --prefix=/home/user/python
    > ./make
    > ./make install
    >
    > The compile process seems to be ok, so I'm kind of clueless :-(
    >
    > Any ideas?


    This is just a guess, but try configuring with:

    ../configure --enable-unicode=ucs4 --prefix=/home/user/python

    On Linux, by default, a self-compiled Python uses UCS2
    internally for its unicode support (with some support
    for UTF16). Most Linux distributions, however, distribute
    a Python that uses UCS4 (aka UTF32) instead, so it seems
    possible that your setuptools egg is expecting to find a
    UCS4 build.

    Mark
    Mark Dickinson, Sep 25, 2009
    #2
    1. Advertising

  3. On Sep 25, 7:56 pm, Mark Dickinson <> wrote:
    > On Sep 25, 7:05 pm, Alejandro Valdez <>
    > wrote:
    > > Hello I sent this e-mail to the python-help list but I'm not sure if
    > > that list is active... so I post it again here:

    >
    > > I'm trying to build Python 2.6.2 from the sources downloaded from the
    > > python official site on OpenSuSE 11.1 (32 bit). After installation the
    > > python command line interpreter seems to run ok, but when I try to
    > > install setuptools I get:
    > > [...]
    > > To compile Python I executed:

    >
    > > ./configure --prefix=/home/user/python
    > > ./make
    > > ./make install

    >
    > > The compile process seems to be ok, so I'm kind of clueless :-(

    >
    > > Any ideas?

    >
    > This is just a guess, but try configuring with:
    >
    > ./configure --enable-unicode=ucs4 --prefix=/home/user/python
    >
    > On Linux, by default, a self-compiled Python uses UCS2
    > internally for its unicode support (with some support
    > for UTF16).  Most Linux distributions, however, distribute
    > a Python that uses UCS4 (aka UTF32) instead, so it seems
    > possible that your setuptools egg is expecting to find a
    > UCS4 build.


    Also, make sure that setuptools is picking up the right python2.6
    executable: you want it to be using the one in /home/user/python/bin,
    not the one in /usr/bin (or where-ever SuSE keeps its python).
    What does 'which python2.6' give on your system, after the python
    install
    but before the setuptools install?

    It may be necessary to set the PYTHONPATH environment variable too;
    I'm not sure about this.

    I admit I don't really understand how you could be getting an
    undefined _PyUnicodeUCS2* symbol; undefined _PyUnicodeUCS4* would
    make more sense.

    Mark
    Mark Dickinson, Sep 25, 2009
    #3
  4. Hello Mark, thank you a lot for your hints, I compiled python using
    the --enable-unicode=ucs4 parameter in configure and I could
    successfully install setuptools (Anyway I'm a little suspicious about
    my compiled binaries...).

    You are right about the environment variables, I have set PYTHONPATH
    and PYTHONHOME to:
    PYTHONPATH=$HOME/python/lib/python2.6/site-packages
    PYTHONHOME=$HOME/python

    The compiler issued some warnings, two of them (related to Unicode)
    called my attention:

    In file included from Python/formatter_unicode.c:13:
    Python/../Objects/stringlib/formatter.h: In function
    ‘unknown_presentation_type’:
    Python/../Objects/stringlib/formatter.h:35: warning: format ‘%c’
    expects type ‘int’, but argument 3 has type ‘Py_UNICODE’

    Should I ignore them?




    Other warning messages:

    libpython2.6.a(posixmodule.o): In function `posix_tmpnam':
    /home/mailstat/Python-2.6.2/./Modules/posixmodule.c:7129: warning: the
    use of `tmpnam_r' is dangerous, better use `mkstemp'
    libpython2.6.a(posixmodule.o): In function `posix_tempnam':
    /home/mailstat/Python-2.6.2/./Modules/posixmodule.c:7084: warning: the
    use of `tempnam' is dangerous, better use `mkstemp'
    /home/mailstat/Python-2.6.2/Modules/_struct.c:187: warning:
    ‘get_ulong’ defined but not used
    /home/mailstat/Python-2.6.2/Modules/_cursesmodule.c: In function
    ‘PyCurses_getsyx’:
    /home/mailstat/Python-2.6.2/Modules/_cursesmodule.c:1766: warning:
    ‘y’ may be used uninitialized in this function
    /home/mailstat/Python-2.6.2/Modules/_cursesmodule.c:1766: warning:
    ‘x’ may be used uninitialized in this function

    On Fri, Sep 25, 2009 at 3:56 PM, Mark Dickinson <> wrote:
    > On Sep 25, 7:05 pm, Alejandro Valdez <>
    > wrote:
    >> Hello I sent this e-mail to the python-help list but I'm not sure if
    >> that list is active... so I post it again here:
    >>
    >> I'm trying to build Python 2.6.2 from the sources downloaded from the
    >> python official site on OpenSuSE 11.1 (32 bit). After installation the
    >> python command line interpreter seems to run ok, but when I try to
    >> install setuptools I get:
    >> [...]
    >> To compile Python I executed:
    >>
    >> ./configure --prefix=/home/user/python
    >> ./make
    >> ./make install
    >>
    >> The compile process seems to be ok, so I'm kind of clueless :-(
    >>
    >> Any ideas?

    >
    > This is just a guess, but try configuring with:
    >
    > ./configure --enable-unicode=ucs4 --prefix=/home/user/python
    >
    > On Linux, by default, a self-compiled Python uses UCS2
    > internally for its unicode support (with some support
    > for UTF16).  Most Linux distributions, however, distribute
    > a Python that uses UCS4 (aka UTF32) instead, so it seems
    > possible that your setuptools egg is expecting to find a
    > UCS4 build.
    >
    > Mark
    > --
    > http://mail.python.org/mailman/listinfo/python-list
    >
    Alejandro Valdez, Sep 25, 2009
    #4
  5. On Sep 25, 10:13 pm, Alejandro Valdez <>
    wrote:

    > The compiler issued some warnings, two of them (related to Unicode)
    > called my attention:
    >
    > In file included from Python/formatter_unicode.c:13:
    > Python/../Objects/stringlib/formatter.h: In function
    > ‘unknown_presentation_type’:
    > Python/../Objects/stringlib/formatter.h:35: warning: format ‘%c’
    > expects type ‘int’, but argument 3 has type ‘Py_UNICODE’


    I only see one warning here, not two. But it should definitely
    be fixed.

    >
    > Should I ignore them?
    >
    > Other warning messages:
    > [...]


    I *think* all of these warnings are benign, though the source should
    really be corrected if necessary to silence them (some of them, like
    the _struct.c one, have already been fixed in svn). I'll take a
    closer
    look at them, though. Thanks for reporting these!

    Mark
    Mark Dickinson, Sep 27, 2009
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Kenneth Kahl
    Replies:
    2
    Views:
    12,076
    Kenneth Kahl
    Feb 22, 2006
  2. baumann@pan
    Replies:
    1
    Views:
    732
    Richard Bos
    Apr 15, 2005
  3. Song Ma
    Replies:
    2
    Views:
    221
    Charles Oliver Nutter
    Jul 20, 2008
  4. Deche Pangestu
    Replies:
    2
    Views:
    211
    Luis Lavena
    Nov 9, 2010
  5. Replies:
    6
    Views:
    1,737
Loading...

Share This Page