From: Alejandro Valdez on
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(a)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?
From: Mark Dickinson on
On Sep 25, 7:05 pm, Alejandro Valdez <alejandro.val...(a)gmail.com>
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
From: Mark Dickinson on
On Sep 25, 7:56 pm, Mark Dickinson <dicki...(a)gmail.com> wrote:
> On Sep 25, 7:05 pm, Alejandro Valdez <alejandro.val...(a)gmail.com>
> 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
From: Alejandro Valdez on
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 <dickinsm(a)gmail.com> wrote:
> On Sep 25, 7:05 pm, Alejandro Valdez <alejandro.val...(a)gmail.com>
> 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
>
From: Mark Dickinson on
On Sep 25, 10:13 pm, Alejandro Valdez <alejandro.val...(a)gmail.com>
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