Ubuntu 20.04 升级,Python 缺少 libffi.so.6
Ubuntu 20.04 upgrade, Python missing libffi.so.6
我最近将 OS 升级到 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
看来我修好了。我可能是错的,但这是我认为发生的事情:
- 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 也会导致很多依赖项被删除。
如果您正在使用 pyenv,您应该卸载使用过的 python 版本,然后重新安装它。
示例:
pyenv uninstall 3.7.4
pyenv install 3.7.4
在我看来,它比重命名系统库更干净、更安全。
我正在使用 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.6
和 libffi.so.6.0.4
文件解压缩到 /usr/lib/x86_64-linux-gnu/
。 libffi.so.6
文件只是同一目录中的 link 到 libffi.so.6.0.4
。
据我所知,这不会覆盖任何文件,因此应该是安全的。
我也遇到同样的问题
- 升级到ubuntu20
- pip 不再工作(同样的错误)
我所做的是:
- 删除了我正在使用的虚拟环境
- 重新创建它
- 当然,我无法执行
pip freeze
来保存我的依赖项(因为 pip 不起作用),但幸运的是我不关心它们。
我在尝试 运行 Jupyter Notebook 时遇到了同样的问题(当我升级到 Ubuntu 20.04 时)。
步骤 1) --> 只需重新安装 python3.7.6(我使用的版本):
$ cd path_to_python3.7_folder
- 重新安装过程:
$ ./configure --enable-optimizations
$ make
$ sudo make install
第二步:卸载jupyter。我用pip3.7卸载...
参见:
第 3 步:再次重新安装 jupyter:
$ pip3.7 install jupyterlab
$ pip3.7 install notebook
再次尝试 运行 jupyter。它应该有效。
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
libffi6包可以通过以下方式下载安装:
从列表中找出 apt 的来源 Download Page for libffi6
(例如我选择了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]
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)
我最近将 OS 升级到 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
看来我修好了。我可能是错的,但这是我认为发生的事情:
- 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 也会导致很多依赖项被删除。
如果您正在使用 pyenv,您应该卸载使用过的 python 版本,然后重新安装它。
示例:
pyenv uninstall 3.7.4
pyenv install 3.7.4
在我看来,它比重命名系统库更干净、更安全。
我正在使用 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.6
和 libffi.so.6.0.4
文件解压缩到 /usr/lib/x86_64-linux-gnu/
。 libffi.so.6
文件只是同一目录中的 link 到 libffi.so.6.0.4
。
据我所知,这不会覆盖任何文件,因此应该是安全的。
我也遇到同样的问题
- 升级到ubuntu20
- pip 不再工作(同样的错误)
我所做的是:
- 删除了我正在使用的虚拟环境
- 重新创建它
- 当然,我无法执行
pip freeze
来保存我的依赖项(因为 pip 不起作用),但幸运的是我不关心它们。
我在尝试 运行 Jupyter Notebook 时遇到了同样的问题(当我升级到 Ubuntu 20.04 时)。
步骤 1) --> 只需重新安装 python3.7.6(我使用的版本):
$ cd path_to_python3.7_folder
- 重新安装过程:
$ ./configure --enable-optimizations
$ make
$ sudo make install
第二步:卸载jupyter。我用pip3.7卸载... 参见:
第 3 步:再次重新安装 jupyter:
$ pip3.7 install jupyterlab
$ pip3.7 install notebook
再次尝试 运行 jupyter。它应该有效。
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
libffi6包可以通过以下方式下载安装:
从列表中找出 apt 的来源 Download Page for libffi6 (例如我选择了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]
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)