Michael Schwendt wrote:
On 30/11/2007, Konstantin Svist <fry.kun(a)gmail.com> wrote:
> Michael Schwendt wrote:
>
>> On 30/11/2007, Konstantin Svist wrote:
>>
>>
>>> Okay, I'll try reinstalling the python-libs package.
>>> According to rpm -q, the file is owned by "python-2.5.1.." package
-
>>> which is why I tried reinstalling that one, instead.
>>>
>>>
>> You're misinterpreting the error message.
>>
>> cPickle.so is included within the "python" package, but depends on
>> symbols in libpython in /usr/lib, which is found in the "python-libs"
>> package. It's important that you don't disturb this inter-library
>> dependency when installing into /usr/local/lib.
>>
>>
>>
> Well, that didn't work either - guess I f'ed it up pretty badly.
>
Yes, you did. :)
> So far, I backed up /usr/lib/python-2.5 and overwrote cPickle.so from
> /usr/local/... - yum stopped complaining about cPickle, but started
> complaining about other libraries. After copying a few of those over as
> well, it's now complaining about not being able to import sqlite (which
> is weird, because it seems that python-sqlite2 package wasn't installed
> in the first place)
>
> I'll probably end up copying /usr/lib/python from a clean F8 system...
> but I would really rather find the real cause of the problem and fix
> that, instead.
>
> By the way, the .so files had file creation date of Oct 30th - so it
> doesn't look like they've been replaced... weird. I have noatime turned
> on, but that shouldn't affect creation dates, right?
>
Files installed as RPM packages get the mtime copied from what it
stored in the package. Python for F8 was last updated/built on Oct
30th.
After checking the system against a clean one and trying to copy some
things over, I tried removing the /usr/local install (by hand, since
uninstall is not really available with python source). That made
everything work.
Looking carefully at the filenames, I noticed that there were files
/usr/local/libpython2.5.so and /usr/local/libpython2.5.so.1.0 - and sure
enough, after bringing them back into /usr/local/lib/ things went back
to the broken state.
So:
* $LD_LIBRARY_PATH is not set
* I explicitly run /usr/bin/python
* "import sys; print sys.path" doesn't mention any /usr/local directories
* "import <some package that's only available in stock python>" works
* "import <some package that's only available in custom python>"
doesn't
work
So how come it seems to use /usr/local/lib/libpython2.5.so?? Where did I
go wrong?