Ubuntu 20.04升级,Python缺少libffi.so.6

时间:2020-05-18 17:52:40

标签: python ubuntu ubuntu-20.04

我最近将操作系统升级到Ubuntu 20.04 LTS。

现在,当我尝试在Python中导入像Numpy这样的库时,出现以下错误:

ImportError: libffi.so.6: cannot open shared object file: No such file or directory

我尝试安装libffi软件包,但apt找不到它:

sudo apt-get install libffi
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package libffi

7 个答案:

答案 0 :(得分:35)

如果您使用的是pyenv,则应仅卸载使用的python版本,然后重新安装。

示例:

pyenv uninstall 3.7.4
pyenv install 3.7.4

从我的角度来看,这比重命名系统库更安全,更安全。

答案 1 :(得分:33)

似乎我已修复它。我可能是错的,但这是我想发生的事情:

  1. Ubuntu 20.04将libffi6升级到libffi7
  2. Python仍在寻找libffi6

我做了什么修复:

在系统中找到libffi.so.7

$ find /usr/lib -name "libffi.so*"

创建一个名为libffi.so.6的Simlink,该链接指向libffi.so.7

sudo ln -s /usr/path/to/libffi.so.7 /usr/lib/path/to/libffi.so.6

更新:

许多用户都指出,此修复程序可能会带来意想不到的后果。更好的方法是按照@amichaud的说明重新安装python。如果您不使用pyenv / virtualenv / etc,则应将此作为最后的手段,在这种情况下,删除python也会导致很多依赖项也被删除。

答案 2 :(得分:21)

我正在使用Xubuntu 20.04,并且重新编译python版本3.7对我不起作用。

我解决此问题的方法是从此处下载该软件包的19.10版本: http://mirrors.kernel.org/ubuntu/pool/main/libf/libffi/libffi6_3.2.1-8_amd64.deb

然后安装它

sudo apt install ./libffi6_3.2.1-8_amd64.deb

这会将libffi.so.6libffi.so.6.0.4文件解压缩到/usr/lib/x86_64-linux-gnu/中。 libffi.so.6文件只是同一目录中libffi.so.6.0.4的链接。

据我所知,这不会覆盖任何文件,因此应该是安全的。

希望这也会对某人有所帮助。

答案 3 :(得分:0)

对我来说同样的问题

  1. 升级到ubuntu 20
  2. pip不再起作用(相同错误)

我所做的是:

  1. 删除了我正在使用的虚拟环境
  2. 重新创建
  3. 当然,我无法执行pip freeze来保存我的依赖项(因为pip无法正常工作),但是幸运的是,我并不关心它们。

答案 4 :(得分:0)

当我尝试运行Jupyter Notebook时,我遇到了同样的问题(当我升级到Ubuntu 20.04时)。

步骤1)->只需重新安装python3.7.6(我使用的版本):

$ cd path_to_python3.7_folder
  • 再次执行安装过程:
    $ ./configure --enable-optimizations
    $ make
    $ sudo make install

  1. 步骤2:卸载jupyter。我用pip3.7卸载... 参见:How to uninstall Jupyter note book installed by pip3

  2. 第3步:再次重新安装jupyter:

    $ pip3.7 install jupyterlab
    $ pip3.7 install notebook

尝试再次运行jupyter。应该可以。

答案 5 :(得分:0)

Ubuntu 20 安装了 libffi7。 可以使用来自 Ubuntu 19.10 (Eoan Ermine) 的旧版本安装 download from here 或者您可以按照这些命令

$ curl -LO http://archive.ubuntu.com/ubuntu/pool/main/libf/libffi/libffi6_3.2.1-8_amd64.deb

$ sudo dpkg -i libffi6_3.2.1-8_amd64.deb

答案 6 :(得分:-1)

可能是您想要的libffi6软件包,它安装了libffi.so.6

sudo apt-get install libffi6