← Back to team overview

pyexiv2-developers team mailing list archive

Re: Introduction to my aims... and query on a glitch...

 

Hi Philip,

On 2010-09-13, Philip G Graham <philip.graham567@xxxxxxxxx> wrote:
> Sorry for the delay, been off the net (my next reply will also be a few
> days later this time again).
> 
> Thanks for the excellent break down on the details of my problem. Still
> a problem - seems to be slightly different?
> I am running Ubuntu Karmic updated to today.
> I uninstalled exiv2 and then all versions of libexiv2 from all found
> directories including the /user/local/lib/
> I emptied the /usr/lib/python2.6/dist-packages/pyexiv2 directory and
> also removed the previous libexiv2python.so
> 
> I then installed exiv2 0.20-1 and ran the pyexiv2 creation program again
> and installed as below:

Do you mean that you compiled pyexiv2 from a clean checkout, or did you
just re-install it, as the log pasted below suggests? If you didn’t,
then you should make sure you re-compile pyexiv2 against the freshly
installed libexiv2 0.20-1. In pyexiv2’s branch, do the following:

scons clean
scons
sudo scons install

> user> sudo scons install
> scons: Reading SConscript files ...
> scons: done reading SConscript files.
> scons: Building targets ...
> Install file: "build/libexiv2python.so" as
> "/usr/lib/python2.6/dist-packages/libexiv2python.so"
> Install file: "src/pyexiv2/__init__.py" as
> "/usr/lib/python2.6/dist-packages/pyexiv2/__init__.py"
> Install file: "src/pyexiv2/exif.py" as
> "/usr/lib/python2.6/dist-packages/pyexiv2/exif.py"
> Install file: "src/pyexiv2/iptc.py" as
> "/usr/lib/python2.6/dist-packages/pyexiv2/iptc.py"
> Install file: "src/pyexiv2/metadata.py" as
> "/usr/lib/python2.6/dist-packages/pyexiv2/metadata.py"
> Install file: "src/pyexiv2/preview.py" as
> "/usr/lib/python2.6/dist-packages/pyexiv2/preview.py"
> Install file: "src/pyexiv2/utils.py" as
> "/usr/lib/python2.6/dist-packages/pyexiv2/utils.py"
> Install file: "src/pyexiv2/xmp.py" as
> "/usr/lib/python2.6/dist-packages/pyexiv2/xmp.py"
> scons: done building targets.
> user> python
> Python 2.6.4 (r264:75706, Dec  7 2009, 18:45:15) 
> [GCC 4.4.1] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
>>>> import pyexiv2
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File "/usr/lib/python2.6/dist-packages/pyexiv2/__init__.py", line 60,
> in <module>
>     import libexiv2python
> ImportError: libexiv2.so.9: cannot open shared object file: No such file
> or directory
> 
> 
> In /usr/local/lib there are now these files: libexiv2.a libexiv2.la
> libexiv2.so libexiv2.so.9 libexiv2.so.9.0.0 which I presume were
> generated by the installation of exiv2 0.20 which was packaged as DEB
> using checkinstall from the successfully compiled tar.gz downloaded from
> the exiv2 site.
> 
> I also placed a link to /usr/local/lib/libexiv2.so.9.0.0 in /user/lib

This shouldn’t be needed. After installing exiv2, did you run ldconfig
(as root) to update the shared library cache?

> but this did not seem to have any effect.
> 
> What path should libexiv2.so.9 be in?

On my machine it’s in /usr/local/lib/, and it points to libexiv2.so.9.0.0.

Let me know if that helps. Cheers,

Olivier


> -------------PGG---------------------
> 
> On Sun, 2010-09-05 at 13:44 +0200, Olivier Tilloy wrote:
>> Hi Philip,
>>
>> On 2010-09-03, Philip Graham <philip.graham567@xxxxxxxxx> wrote:
>>> Hi guys,
>>> The first time around after install and getting around the initial "mt"
>>> error, running python in the terminal, I got the error "undefined
>>> symbol: _ZNK5Exiv27ExifKey3keyEv" when trying to import the pyexiv2
>>> module the very first time.
>>
>> I have never observed this issue myself, but I know that Rob Healey has,
>> and it seems that upgrading dependencies fixed the issue somehow.
>>
>>> This error is unintelligible to me as I am not familiar with c++
>>> programming. I am attracted to the Python bindings as I am attempting to
>>> build an app for myself with pygtk to replace "f-spot" (see note below:).
>>> Retracing my steps of preparation, I found that I had unintentionally
>>> built and installed exiv2-0.20 being the most recent on that site. I
>>> have now uninstalled exiv2-0.20 and installed a fresh build of exiv2-0.19.
>>> After again running the scons and then the scons install against the
>>> exiv2-0.19 version, then running python in the terminal, I still get the
>>> error "undefined symbol: _ZN5Exiv25ErrorD1Ev" (slightly different) when
>>> trying to import the pyexiv2 module.
>>
>> From the list of packages installed on your system, you have exiv2 0.19
>> (0.19-1), but libexiv2 0.18 (0.18.2-1). That’s suspicious. It may very
>> well be that pyexiv2 was compiled against one version of libexiv2, and
>> another version is loaded when trying to import pyexiv2, causing the error.
>>
>> I would try to completely uninstall all version of libexiv2 (including
>> those compiled and installed locally, e.g. in /usr/local/), install
>> either 0.19 or 0.20 (either should work just fine), and retry compiling
>> pyexiv2. Note that the latest version is available in
>> pyexiv2-developers’ PPA at
>> https://launchpad.net/~pyexiv2-developers/+archive/ppa (for Lucid and
>> Maverick).
>>
>>> Are there some rogue files left over from the previous install? How do I
>>> uninstall all of pyexiv2 any version and then re-install? Is it just a
>>> matter of deleting the pyexiv directory and the shared object file
>>> libexiv2python.so in /usr/lib/python2.6/dist-packages/...?
>>
>> Yes, that should be enough to completely uninstall pyexiv2 from your
>> system. The build log you attached lists all the files being installed,
>> and there’s no additional magic involved. Note that you can install
>> pyexiv2 locally (for the current user only, and without the need for
>> admin privileges): `scons install --user`.
>>
>>> I have included my scons build log, the error text when in Python,
>>> details of the packages installed on my system, summary of my system.
>>
>> I hope this helps, please let us know if it does solve the issue, and
>> don’t hesitate to ask here for any question related to building/using
>> pyexiv2.
>>
>>> Background note:
>>> I am digitising a legacy collection of 10,000 Kodachrome_25 35mm
>>> transparencies with original dates that are meaningless when displayed
>>> inside a modern app like "f-spot" or "digicam". I wish to have the
>>> option of displaying the thumbnails and previews in filename order as
>>> this is how they have been named and saved when manually scanned in high
>>> definition raw mode. The date of creation when scanned is meaningless in
>>> the timelines as used in apps receiving downloads from digital cameras.
>>> But I was discouraged when I looked at the C# code in "f-spot" as to
>>> what to change to create the filename thumbnail display to govern an
>>> order of display. In the scans I embed full descriptions of subject
>>> matter along with the copyright and date definitions using the power of
>>> EXIF tagging. Presently I use the perl-based 'ExifTool' on the command
>>> line, but I would really like to do this under Python hence my interest
>>> in in your excellent pyexiv2.
>>
>> That should be pretty straightforward to achieve with pyexiv2.
>> As an anecdote, I started this project because I wanted to fix the
>> DateTime tags in pictures that either didn’t have one or that had a
>> incorrect one because the photographer couldn’t be bothered setting the
>> date/time on his camera correctly…
>>
>>> I do not understand the obsession with timelines in the current crop of
>>> digital photo apps. Surely there are enough of the large number of
>>> colour transparencies being scanned in to warrant the option of
>>> filename-based displays in suitable display-management apps?
>>
>> Those apps are as good as what their authors want them to do… And it
>> seems that in this field every single person has a different opinion on
>> the best way of organizing their pictures collection. I myself haven’t
>> found the perfect application to suit my needs…
>>
>>> Greetings from the newbie
>>>  
>>> -PGG-
>>
>> Cheers,
>>
>> Olivier



References