我刚刚将笔记本电脑从 14.04 LTS 升级到 16.04 LTS,似乎破坏了几个依赖项。我注意到有两个 Python 包损坏了,但仔细研究后发现问题可能更加严重。
第一个问题,我认为不太严重的问题与 python 包有关glib
。我相信它是作为 的依赖项自动安装的python-poppler
,而 是通过 进行安装的apt
。我大部分时间都使用 anaconda(通过conda
或 anaconda安装包pip
),我注意到 anaconda 的 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
但是,当我尝试在系统的 python ( /usr/bin/python
) 中导入 glib 时,导入没有任何问题。我能找到的唯一类似问题是这个,所以看起来这可能是 anaconda 的问题。我不想删除 anaconda,还有其他方法可以解决这个问题吗?
其次,更严重的是,我遇到了问题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
无论我使用的是 anaconda 的 python 还是系统 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,搜索也没有任何结果。trusty 是 14.04 LTS 版本的名称,对吗?那么libexiv2
从 14.04 更新到 16.04 的过程中,更新是否可能出了问题?我能找到的与 pyexiv2 类似的其他问题只有一个已修补的旧问题,以及某个自己编译了 pyexiv2 的人(我无法发布链接,因为我的声誉不够高),这两个问题都不相关。
任何帮助都将不胜感激!此时,我很想清理我的机器并进行全新安装,但我希望还有其他方法。
答案1
所以我最终只是删除了我的驱动器并重新安装了 Ubuntu 16.04 LTS。这完全解决了第二个问题,但没有影响第一个问题。我尝试过卸载并重新安装 anaconda,也尝试过 python 3,但都没有用。幸运的是,我唯一需要那个 python 库的东西就是我一直想在 elisp 中重写的一些代码,所以我可以解决这个问题。