Michael Schwendt wrote:
On 30/11/2007, Konstantin Svist <fry.kun@xxxxxxxxx> 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?