[Zope] Strange errors while 'make'ing
a blob of green gelatin
jello at lava.net
Wed Mar 22 20:43:05 EST 2006
On Wed, 22 Mar 2006, a blob of green gelatin wrote:
>> Maybe PyUnicodeUCS2_AsEncodedString is the culprit?.
>>
>> RedHat 9 and SuSE 9 and later ship with UCS4 builds of Python and Zope, so
>> please download the UCS4 versions of the product.
>>
>> To find out which Python Unicode you have, please run the following command
>> using the Python interpreter used by your Zope installation: |python -c
>> "import sys; print (sys.maxunicode < 66000) and 'UCS2' or 'UCS4'"|
Hi again David (and jens 'n anyone else reading this thread),
I've solved the problem thanks to both of your input. I don't think this
is a bug on anyone's part, but I do think it'd be something to add to a
FAQ or the INSTALL.txt document in case others run into it like I do.
I found this URL (via googling for the PyUnicodeUCS2_AsEncodedString
message) :
http://www.initd.org/tracker/psycopg/ticket/88
and these lines basically hit the nail on the head:
"this appears to revolve around the fact that suse 10 comes with python
built as UCS4, and it appears that a default build of python is UCS2.
since i would like to have suse maintain python installs i normally have
yast update it. however, zope 3 wants 2.4.2 and suse build atm is at
2.4.1. thus i installed in local 2.4.2. (also this may be an issue with
redhat from what i found on the egenix site)
the problem is that with one python doing UCS2 and the other doing UCS4
you can get in a situation where mx and psycopg are built oriented to, say
for example UCS2 if you used the default build of 2.4.2. since the build
doesn't check to see if the UCS is one or the other or that your using a
different python this time for the install, then what python was used with
current build. after you do the build once if you install for a 2nd python
it uses the prior build and merrily installs the UCS2 oriented lib into
the UCS4 python."
Now, I'm using Fedora Core 4 rather than SUSE, but it sure seemed
appropriate. Funnily enough, the command you gave me to run and check the
UCS I had run only on the system version, not the compiled version of
python. I ran the command on my compiled version and sure enough, it
showed UCS2 rather than UCS4 (which my system python had shown)!
So I had to recompile python 2.4.2 to include UCS4 support:
(./configure --enable-unicode=ucs4)
then recompile zope and voila! I'm now back on the INSTALL.txt roadmap!
:)
One note: The python README file for the 2.4.2 tarball states:
Red Hat Linux: Red Hat 9 built Python2.2 in UCS-4 mode and hacked
Tcl to support it. To compile Python with Tkinter on these
systems, you will need to pass --enable-unicode=ucs4 flag
to ./configure. This is no longer needed in Fedora Core.
I'm probably reading it wrong (though I did have to install a tkinter rpm
at some point a long time ago), but I can read it as saying you wouldn't
need to pass this flag to 'configure' for fedora core because FC already
enables UCS4. I specified the flag anyway and it seems to have done the
trick.
Thanks again everyone!
Cheers,
Chris
-----
Some people wear Superman pajamas. Superman wears Chuck Norris pajamas.
More information about the Zope
mailing list