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

     2023-03-16     230

关键词:

【中文标题】Ubuntu 20.04 升级,Python 缺少 libffi.so.6【英文标题】:Ubuntu 20.04 upgrade, Python missing libffi.so.6 【发布时间】:2020-09-04 14:55:40 【问题描述】:

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

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

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

我尝试安装 libffi 软件包,但无法找到它:

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

【问题讨论】:

您可以尝试重新安装python3-numpy 如果有帮助,可以搜索Ubuntu packages online。例如搜索filenames containing libffi.so on Focal, amd4 参见来自 ruby​​ists 的 ***.com/q/65000467/12544391,例如将gem "ffi" 添加到Gemfile 修复它 【参考方案1】:

libffi 的问题也可以通过创建符号链接来解决: sudo ln -s /usr/path/to/libffi.so.8 /usr/lib/path/to/libffi.so.7 然后你在 xorg 日志中得到另一个关于 Wayland 的错误。帮助我的是重新安装 wayland 和 lib32-wayland。之后我就可以正常启动了(虽然我在Cinnamon中使用xorg,但也安装了Gnome)

【讨论】:

【参考方案2】:

libffi6 包可以按如下方式下载安装:

从Download Page for libffi6 列表中确定 apt 的来源 (例如我选择了http://mirrors.kernel.org/ubuntu/)

制作一个back up of /etc/apt/sources.list(以防万一)

Edit /etc/apt/sources.list 并添加该行(我将其添加到文件的最末尾)并保存文件

deb https://mirrors.kernel.org/ubuntu bionic main

更新以使用新的存储库

sudo apt update

最后,安装包:

sudo apt install libffi6

请注意,libffi6 和 libffi7 似乎是共存的。 (我的 Ubuntu 版本是 20.04)

$ sudo apt list | grep libffi[67]/

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libffi6/bionic,now 3.2.1-8 amd64 [installed]
libffi7/focal,now 3.3-4 amd64 [installed,automatic]

【讨论】:

【参考方案3】:

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

【讨论】:

这对我有帮助,谢谢 :) 这有帮助。谢谢。 谢谢!确认在 @ Ubuntu 20.04.2 工作。【参考方案4】:

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

Step 1) --> 重新安装python3.7.6(我使用的版本):

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

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

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

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

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

【讨论】:

【参考方案5】:

同样的问题

    升级到 ubuntu 20 pip 不再起作用(同样的错误)

我所做的是:

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

【讨论】:

【参考方案6】:

我使用的是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 的链接。

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

希望这对某人也有帮助。

【讨论】:

我尝试了上面所有的答案,但都失败了。这个适用于 Ubuntu 21.04。 你拯救了我的一天 这对我有用(Ubuntu 20.04)。【参考方案7】:

看来我修好了。我可能是错的,但这是我认为发生的事情:

    Ubuntu 20.04 将 libffi6 升级为 libffi7 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 也会导致许多依赖项也被删除。

【讨论】:

如果这真的有效,我会感到非常惊讶 - 将一个版本的库符号链接到另一个版本似乎可能会导致不稳定。重建python似乎是正确的解决方案 它实际上对我有用。我知道这不是最干净的方法,但是这样可以避免重新安装所有 python 包/依赖项。关于不稳定,我不明白为什么它是“灾难的秘诀”。在最坏的情况下,您只需要恢复到重建 python。也就是说,如果它会导致更多我不知道的问题,我愿意更改已接受的答案。 当你说工作虽然你似乎意味着在启动时不会崩溃。您无法知道 python 的行为是否与应有的稍有不同,因为您调用了错误的库,可能会出现无法检测到的执行细微差异。更容易但更烦人的是将来某个随机点的崩溃,因为最终一些 python 代码会导致对 lib 的调用,该调用已经发生了足够的变化,以至于它在明显的问题上失败了。 如果您想避免“丢失”已安装的软件包,只需执行 pip freeze > backup.txt,删除 Python 安装,重新安装并使用 pip install -r backup.txt,您将恢复到原来的状态【参考方案8】:

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

例子:

pyenv uninstall 3.7.4
pyenv install 3.7.4

在我看来,这比重命名系统库更干净、更安全。

【讨论】:

这是正确的做法 - 伪造 lib 版本是最后的选择,可能会产生意想不到的后果。 甚至pyenv install 3.7.4 -f 允许不重新创建virtualenvs 重新安装 Python 是门票,无论是使用 pyenv 还是其他方式。 Python 会在构建时找到更新的库。 这真的应该是最佳/接受的答案!符号链接不同的库似乎是灾难的秘诀 PS 我不得不实际删除并重新安装 pyenv

升级到 Ubuntu 20.04 后,python 3.7 venv 损坏

】升级到Ubuntu20.04后,python3.7venv损坏【英文标题】:python3.7venvbrokenafterupgradetoUbuntu20.04【发布时间】:2020-08-1520:55:41【问题描述】:我刚刚升级到Ubuntu20.04。我在虚拟环境中使用Django处理python3.7项目,所以即使升级发行版(涉及... 查看详情

Ubuntu 20.04 升级后 python3 啥都不返回

】Ubuntu20.04升级后python3啥都不返回【英文标题】:whichpython3returnsnothingafterUbuntu20.04upgradeUbuntu20.04升级后python3什么都不返回【发布时间】:2020-08-0908:26:20【问题描述】:在我安装了新的Ubuntu20.04(更新形式19.10)后,Python似乎出现... 查看详情

升级到 Ubuntu 20.04 杀死 pip

】升级到Ubuntu20.04杀死pip【英文标题】:UpgradetoUbuntu20.04killedpip【发布时间】:2020-08-2505:45:21【问题描述】:我从19.10升级到Ubuntu20.04,现在我无法使用pip。zeno:~$pip--versionCommand\'pip\'notfound,butthereare18similarones.Python已安装:zeno:~$pytho... 查看详情

如何在已经安装 Python 3.4 的 Docker 容器中升级到 Python 3.5? (我在 Ubuntu 20.04 上运行 Docker 容器)

...何在已经安装Python3.4的Docker容器中升级到Python3.5?(我在Ubuntu20.04上运行Docker容器)【英文标题】:HowtoupgradetoPython3.5inaDockercontainerthathasalreadyinstalledPython3.4?(I\'mrunningDockercontainersonUbuntu20.04)【发布时间】:2021-09-0510:09:51【问题描... 查看详情

ubuntu20.04+virtualbox相关

...​​升级Python​​​​开启远程桌面(windows连接,desktop版ubuntu)​​​​升级CMake3.22​​​​安装Samba​​​​安装MosquittoMQTT​​​​安装EMQXMQTT​​​​安装Redis​​​​安装LAMP​​​​安装typecho​​​​安装g20​​​​关 查看详情

Docker - Ubuntu 20.04 升级后没有路由到主机

】Docker-Ubuntu20.04升级后没有路由到主机【英文标题】:Docker-noroutetohostafterUbuntu20.04upgrade【发布时间】:2021-04-0610:01:35【问题描述】:多年来,我一直在为一些应用程序使用docker-compose,最近,在将主机操作系统从Ubuntu18.04升级到U... 查看详情

将 Ubuntu 升级到 20.04 后 Cassandra 无法工作

】将Ubuntu升级到20.04后Cassandra无法工作【英文标题】:CassandranotworkingafterupgradeUbuntuto20.04【发布时间】:2020-10-2216:46:18【问题描述】:Cassandra.service正在运行但无法连接。Cqlsh也不行【问题讨论】:我已经在docker中安装了Cassandra,... 查看详情

ubuntu20.04安装python(代码片段)

首先进入root用户(当然愿意在命令前加sudo也可以):su-root然后执行所有升级:aptupdateaptupgrade-y安装编译Python源程序所需的包:aptinstallbuild-essential-yaptinstalllibncurses5-devlibgdbm-devlibnss3-devlibssl-devlibreadline 查看详情

如何在线将ubuntu18.04升级到ubuntu20.04

将Ubuntu18.04升级到Ubuntu20.04在将系统升级运行到下一个主要发行版本之前,请确保已备份当前系统,以使您可以恢复原状,以防万一。备份过程不在本指南的范围内。运行系统更新首先将Ubuntu18.04系统软件包更新和升级... 查看详情

升级到 Ubuntu 20.04 后 PHP MySQLi 不再工作 [重复]

】升级到Ubuntu20.04后PHPMySQLi不再工作[重复]【英文标题】:PHPMySQLinotworkinganymoreafterupgradetoUbuntu20.04[duplicate]【发布时间】:2020-09-1422:12:20【问题描述】:我确实安装了php7.4-mysql,错误在下面,其余在标题中PHP致命错误:未捕获的错... 查看详情

将 ubuntu 18.04 升级到 20.04 但软件包仍然是 +bionic1

】将ubuntu18.04升级到20.04但软件包仍然是+bionic1【英文标题】:upgradeubuntu18.04to20.04butpackagesremain+bionic1【发布时间】:2020-08-2022:57:40【问题描述】:升级到ubuntu20.04后,一些包仍保留在+bionic1版本中sudoaptlist|greppython3.8WARNING:aptdoesnotha... 查看详情

将 ubuntu 18.04 升级到 20.04 后,简单的 hello world snap 不起作用

】将ubuntu18.04升级到20.04后,简单的helloworldsnap不起作用【英文标题】:Simplehelloworldsnapisnotworkingafterupgradeofubuntu18.04to20.04【发布时间】:2021-03-2712:12:53【问题描述】:最近,我开始研究捕捉。我已经学会了在Ubuntu18.04上使用简单的... 查看详情

无法重新启动 mysql.service:从 18.4 升级后,单元 mysql.service 在 Ubuntu 20.04 中被屏蔽

...无法重新启动mysql.service:从18.4升级后,单元mysql.service在Ubuntu20.04中被屏蔽【英文标题】:Failedtorestartmysql.service:Unitmysql.serviceismaskedinUbuntu20.04afteranupgradefrom18.4【发布时间】:2021-03-1312:03:40【问题描述】:我将我的ubuntu从ubuntu18.04... 查看详情

ubuntu20.04升级到22.04中遇到的问题(byquqi99)(代码片段)

...天通过’sudodo-release-upgrade-d-fDistUpgradeViewNonInteractive’将ubuntu20.04升级到了ubun 查看详情

ubuntu20.04升级到22.04中遇到的问题(byquqi99)(代码片段)

...天通过’sudodo-release-upgrade-d-fDistUpgradeViewNonInteractive’将ubuntu20.04升级到了ubun 查看详情

MySQL ERROR 2026 - SSL 连接错误 - Ubuntu 20.04

】MySQLERROR2026-SSL连接错误-Ubuntu20.04【英文标题】:MySQLERROR2026-SSLconnectionerror-Ubuntu20.04【发布时间】:2020-08-2206:36:44【问题描述】:我最近将我的本地机器操作系统从Ubuntu18.04升级到20.04,我在CentOS(AWS)上运行我的MySQL服务器。每当... 查看详情

如何在 Ubuntu 20.04 上为 Python 3.9 安装 pip

】如何在Ubuntu20.04上为Python3.9安装pip【英文标题】:HowtoinstallpipforPython3.9onUbuntu20.04【发布时间】:2021-04-1502:13:16【问题描述】:Ubuntu20.04附带Python3.8。我无法卸载Python3.8,但我需要Python3.9我继续安装Python3.9:sudoadd-apt-repositoryppa:de... 查看详情

ubuntu在线升级

本文教您如何从Ubuntu20.04升级至Ubuntu20.10版本(其它版本间的升级大同小异)。其实Ubuntu升级过程非常简单,只要您的网络连接良好,就不需要花费那么长时间。在进行升级之前,需要牢记一些注意事项,因此请务必注意本教程... 查看详情