Обновление Ubuntu 16.04 LTS сломало некоторые зависимости
Я только что обновил свой ноутбук с 14.04 LTS до 16.04 LTS, и он, похоже, сломал несколько зависимостей. Я заметил два разбитых пакета Python, но после того, как возиться, кажется, что проблемы могут идти глубже.
Первая, и я думаю, менее серьезная проблема с пакетом Python glib
, Я считаю, что это было установлено автоматически как зависимость для python-poppler
, который был установлен через apt
, Я использую анаконду по большей части (установка пакетов через conda
или анаконды pip
где я могу), и я заметил, что анаконда Python / IPython не может установить glib
(и поэтому, poppler
правильно). Я получаю следующую ошибку:
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
21
---> 22 from glib._glib import *
23 _PyGLib_API = _glib._PyGLib_API
24
ImportError: No module named _glib
Однако, когда я пытаюсь импортировать glib в системный Python (/usr/bin/python
), он импортирует без проблем. Единственная похожая проблема, которую я мог найти, это эта, так что, похоже, это проблема анаконды. Я не хочу удалять анаконду, есть ли другой способ исправить это?
Во-вторых, и более серьезно, у меня есть проблемы с pyexiv2
, Это предотвращает приложения variety
а также picty
от открытия. Когда я пытаюсь импортировать pyexiv2
Я получаю следующую ошибку:
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 """
59
---> 60 import libexiv2python
61
62 from pyexiv2.metadata import ImageMetadata
ImportError: /usr/lib/python2.7/dist-packages/libexiv2python.so: undefined symbol: _ZNK5Exiv27ExifKey7tagNameB5cxx11Ev
Это происходит независимо от того, использую я Python от Anaconda или системный Python.
Я обнаружил подобную проблему здесь, и, похоже, это может быть причиной того, что мои pyexiv2 и exiv2 не синхронизированы, но у меня есть идея, как это исправить. Очевидно, exiv2 не установлен в моей системе, и когда я пытаюсь установить его, я получаю следующее:
$ 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.
а также 0.25-2.1.0pm02~trusty
не похоже на релиз, указанный в https://launchpad.net/ubuntu/xenial/+package/libexiv2-14, а также поиск по нему ничего не поднимает. верным было название релиза 14.04 LTS, верно? Так что возможно, что-то пошло не так с обновлением libexiv2
во время обновления с 14.04 до 16.04? Единственные другие похожие проблемы с pyexiv2, которые я могу найти, это старая проблема, которая была исправлена, и для того, кто скомпилировал pyexiv2 сами (я не могу опубликовать ссылки, потому что моя репутация недостаточно высока), ни одна из которых не имеет отношения к делу.
Любая помощь будет принята с благодарностью! На этом этапе я испытываю желание стереть мою машину и выполнить чистую установку, но я надеюсь, что есть другой способ.
1 ответ
В итоге я просто стер свой диск и переустановил Ubuntu 16.04 LTS. Это решило вторую проблему полностью, но не затронуло первую. Я пытался удалить и переустановить Anaconda, а также пробовал Python 3, ни один из которых не сработал. К счастью, единственная вещь, для которой мне нужна эта библиотека python - это немного кода, который я собирался переписать в elisp, так что я могу обойти эту проблему.