mark starnes wrote:
> Hi Mike, thanks for responding.
>
> I spent most of last night with this, re-installing Python using SuSE's
> package manager, re-installing matplotlib the same way.  No joy.  I
> tried downloading the matplotlib source and found that when I attempted
> to install, setup.py claimed I didn't have gtk available as a Python
> import.  Checking this, I found it to be true although the installation
> directories are present.  Re-installing gtk and things that depended on
> it had no effect - it still wont import.
>
> Checking another machine, I found it worked ok with gtk, pylab and
> anything else I could test.  The file versions and directory structures
> were the same.
>
> Following your UCS2 / UCS4 comments and a scroogle search, I found this:
>
> http://copia.ogbuji.net/blog/2006-01-09/Confusion_
>
> sys.maxunicode is set to 65535 on the non-working installation.
> sys.unicode is set to 1114111 on the working installation!  How did they
> become different?  How can I get them to match?
>   
The one that returns 65535 is 16-bit UCS2.  That probably was built from 
source, since most Linux distributions ship Python as UCS4.
> Checking sys.prefix on both installations shows the working machine to
> be '/usr', the non working, '/usr/local'.
>   
That's another good data point.  The non-working one was built from 
source, and not from an installed SuSE package.
> $ whereis python
> Generates thirteen results on the working installation, one of which
> refers to a /local/ type entry.  The non-working installation shows
> fifteen entries, five of which contain '/local/.
>   
What's most important is what comes first, because that's what will run 
when you simply type 'python'.  (And sys.prefix tells you that, too).

These are all clues without a definitive answer, but I'd put my money 
on: you have a source-built Python sitting around in /usr/local which 
can not access and is incompatible with all of the package-installed 
stuff you have.
> To be honest, I'm lost.  I'd like to remove Python and re-install it,
> with all the modules I'm now using.  Removing it with SuSE's package
> manager generates all sorts of problems with dependencies.  Updating it
> has no effect.  Is there a way to convince the system to start afresh
> (assuming that's the best approach), maybe removing the local settings?
>   
There's probably hundreds of crucial things that depend on Python, which 
is why removing it causes all of the dependency problems.

I almost feel guilty saying this, but if you don't want to keep anything 
you've built from source (including non-Python stuff), you could 
*backup* and then remove your /usr/local folder.  I can't stress the 
backup part enough ;)  Then you should (most likely) only be dealing 
with stuff installed from SuSE packages.  Uninstalling things built from 
source is usually not directly possible without using a tool like 
checkinstall.

You may also want to make sure that the PYTHONPATH environment variable 
isn't set to anything.  That will affect where Python libraries are 
loaded from, and if you want to be in a "default" situation, it should 
be unset.

Cheers,
Mike
>
> Michael Droettboom wrote:
>   
>> I recently ran into a similar problem myself building stuff from source,
>> but I'm not sure of the specifics with SuSE and their packages etc.
>>
>> Python can be configured in two ways -- with two-byte (UCS2) or
>> four-byte (UCS4) Unicode characters.  Apparently the default for a
>> source installation of Python is UCS2, but many (most) Linux
>> distributions build it for UCS4.  Python extensions built for one
>> configuration can not be used with a Python built for the other
>> configuration.
>>
>> When Python extensions are built, if all goes well, they will match the
>> configuration of the Python interpreter.  It looks like somehow you have
>> a mismatch between matplotlib and your Python interpreter.
>>
>> If you installed everything from packages, I would expect them all to
>> match (unless SuSE's quality control has really gone down as of late
>> ;).  Perhaps something is still around from when you built things from
>> source.  Did you at any point build your own Python?
>>
>> On a number of Linux distributions (probably including SuSE, but I don't
>> know for sure), things installed from source are under the /usr/local
>> tree.  To diagnose this, you could see if anything is getting pulled in
>> from there (rather than from the packaged stuff, which wouldn't be under
>> /usr/local).  For instance "whereis python", will tell you which python
>> is being used.  When you import a Python module, you can use __file__ to
>> see where it was imported from.  For example:
>>
>>     
>>>>>  import pylab
>>>>>  pylab.__file__
>>>>>           
>> Hope that at least offers some next steps for tracking this down.
>>
>> Cheers,
>> Mike
>>
>> mark starnes wrote:
>>     
>>> Hi everyone,
>>>
>>> I'm running Suse10.2 and installing packages using Yast (after much pain
>>> trying to install Numpy and Scipy without it!).  After installing (and
>>> re-installing) Matplotlib in this way, I get the error,
>>>
>>> ImportError: matplotlib/ft2font.so: undefined symbol:
>>> PyUnicodeUCS4_GetSize
>>>
>>> when I attempt to import pylab.
>>>
>>> Can anybody help me fix this?  I couldn't find any help on the
>>> matplotlib site and my .matplotlib directory is empty.
>>>
>>> Oh, I'm also a bit new to Linux - please be patient!
>>>
>>> Thanks in advance,
>>>
>>> Mark.
>>>
>>> -------------------------------------------------------------------------
>>> This SF.net email is sponsored by DB2 Express
>>> Download DB2 Express C - the FREE version of DB2 express and take
>>> control of your XML. No limits. Just data. Click to get it now.
>>> http://sourceforge.net/powerbar/db2/
>>> _______________________________________________
>>> Matplotlib-users mailing list
>>> Matplotlib-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>>   
>>>       
>>     


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to