I just upgraded my laptop from 14.04 LTS to 16.04 LTS and it appears to have broken several dependencies. I noticed two broken python packages, but after poking around, it appears like the issues may go deeper.

The first, and I think less serious issue is with the python package glib. I believe this got installed automatically as a dependency for python-poppler, which was installed via apt. I use anaconda for the most part (installing packages via conda or anaconda's pip where I can), and I noticed that anaconda's python / IPython can't install glib (and therefore, poppler correctly). I get the following error:

In [1]: import glib
ImportError                               Traceback (most recent call last)
<ipython-input-1-51ae20c37cf1> in <module>()
----> 1 import glib

/usr/lib/python2.7/dist-packages/glib/__init__.py in <module>()
     20 # USA
---> 22 from glib._glib import *
     23 _PyGLib_API = _glib._PyGLib_API

ImportError: No module named _glib

However, when I try to import glib in the system's python (/usr/bin/python), it imports with no problem. The only similar issue I could find is this one, so it appears that it may be an anaconda issue. I don't want to remove anaconda, is there another way to fix this?

Secondly, and more seriously, I'm having issues with pyexiv2. This prevents the applications variety and picty from opening. When I attempt to import pyexiv2 I get the following error:

In [1]: import pyexiv2
ImportError                               Traceback (most recent call last)
<ipython-input-1-45fdaeaee197> in <module>()
----> 1 import pyexiv2

/usr/lib/python2.7/dist-packages/pyexiv2/__init__.py in <module>()
     58 """
---> 60 import libexiv2python
     62 from pyexiv2.metadata import ImageMetadata

ImportError: /usr/lib/python2.7/dist-packages/libexiv2python.so: undefined symbol: _ZNK5Exiv27ExifKey7tagNameB5cxx11Ev

This happens regardless of whether I'm using anaconda's python or the system python.

I found a similar issue here, and so it looks like it might be an issue of my pyexiv2 and exiv2 not being in sync, but I have on idea how to fix that. Apparently exiv2 is not installed on my system and when I try to install it, I get the following:

$ sudo apt install exiv2
[sudo] password for billbrod: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 exiv2 : Depends: libexiv2-14 (= 0.25-2.1) but 0.25-2.1.0pmo2~trusty is to be installed
E: Unable to correct problems, you have held broken packages.

and 0.25-2.1.0pm02~trusty doesn't appear to be a release listed at https://launchpad.net/ubuntu/xenial/+package/libexiv2-14, nor does searching for that turn anything up. trusty was the name of 14.04 LTS release, right? So is it possible something has gone wrong with the updating of libexiv2 during the update from 14.04 to 16.04? The only other similar issues with pyexiv2 I can find are an old issue that was patched and for someone who compiled pyexiv2 themselves (I can't post the links because my reputation isn't high enough), neither of which are relevant.

Any help would be greatly appreciated! At this point, I'm tempted to wipe my machine and do a clean install but I'm hoping there's another way.

  • What python --version gives? – enedil Aug 12 '16 at 10:51
  • python --version returns Python 2.7.12 :: Anaconda 4.1.1 (64-bit) and /usr/bin/python --version returns Python 2.7.12 – Bill Broderick Aug 14 '16 at 1:55

So I ended up just erasing my drive and re-installing Ubuntu 16.04 LTS. That fixed the second problem completely, but didn't affect the first. I've tried uninstalling and re-installing anaconda, as well as trying python 3, none of which have worked. Fortunately, the only thing I need that python library for is a bit of code that I've been meaning to re-write in elisp anyway, so I can get around the issue.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.