我最近将我的操作系统升级到Ubuntu20.04LTS。
现在,当我试图导入像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
发布于 2020-05-18 18:14:31
好像我修好了。我可能错了,但我认为发生了这样的事情:
我为修复它所做的一切:
在系统中找到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
更新:
正如许多用户所指出的,这种修复可能会产生意想不到的后果。更好的方法是重新安装python,@amichaud解释道。如果您不使用pyenv/virtualenv/etc,则应该将其作为最后手段使用,在这种情况下,删除python也会导致大量依赖项被移除。
发布于 2020-05-27 08:56:58
如果您正在使用pyenv,您应该卸载使用过的python版本,然后重新安装它。
示例:
pyenv uninstall 3.7.4
pyenv install 3.7.4
在我看来,它比重命名系统库更干净和安全。
发布于 2020-08-09 18:21:09
我正在使用Xubuntu20.04,重新编译python版本3.7对我没有用。
我解决这个问题的方法是从这里下载19.10版本的软件包: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
文件只是指向同一目录中的libffi.so.6.0.4
的链接。
据我所见,这不会覆盖任何文件,所以应该是安全的。
Ubuntu22.04附加步骤如下所示,安装上述命令后需要运行此命令:
apt install libffi-devel
然后重新编译Python。
https://stackoverflow.com/questions/61875869
复制相似问题