Ubuntu 20.04 upgrade, Python missing libffi.so.6

馋奶兔 提交于 2021-01-20 18:47:48

问题


I recently upgraded my OS to Ubuntu 20.04 LTS.

Now when I try to import a library like Numpy in Python, I get the following error:

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

I tried installing the libffi package, but apt can't locate it :

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

回答1:


If you are using pyenv, you should just uninstall the used python version and then reinstall it.

Example:

pyenv uninstall 3.7.4
pyenv install 3.7.4

It's cleaner and safer than renaming system library from my point of view.




回答2:


It seems like I fixed it. I could be wrong, but here is what I think happened:

  1. Ubuntu 20.04 upgraded libffi6 to libffi7
  2. Python is still looking for libffi6

What I did to fix it :

Locate libffi.so.7 in your system

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

Create a simlink named libffi.so.6 that points to libffi.so.7:

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

UPDATE:

As noted by many users, this fix could have unintended consequences. The better way to do it is to reinstall python as @amichaud explained. This should be used as a last resort IF you're not using pyenv/virtualenv/etc in which case removing python will cause a lot of dependencies to be removed as well.




回答3:


I am using Xubuntu 20.04 and recompiling the python version 3.7 did not work for me.

The way I solved this was to download the 19.10 version of the package from here: http://mirrors.kernel.org/ubuntu/pool/main/libf/libffi/libffi6_3.2.1-8_amd64.deb

and then installing it

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

This will unpack the libffi.so.6 and libffi.so.6.0.4 files to /usr/lib/x86_64-linux-gnu/. The libffi.so.6 file is just a link to libffi.so.6.0.4 in the same directory.

As far as I could see this does not overwrite any files so should be safe.

Hopefully this helps someone as well.




回答4:


Same problem for me

  1. Upgraded to ubuntu 20
  2. pip didn't work anymore (same error)

What I did was:

  1. deleted the virtual env I was using
  2. recreated it
  3. Sure, I wasn't able to do a pip freeze to get save my dependencies (as pip didn't work), but fortunately I didn't care about them.



回答5:


I had the same problem (when I upgrded to Ubuntu 20.04) when I tried to run Jupyter Notebook.

Step 1) --> Just re-install python3.7.6 (the version I was using) :

$ cd path_to_python3.7_folder
  • Do again de installation process:
    $ ./configure --enable-optimizations
    $ make
    $ sudo make install

  1. Step 2: uninstall jupyter. I used pip3.7 uninstall ... See: How to uninstall Jupyter note book installed by pip3

  2. Step 3: Re-install jupyter again:

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

Try to run jupyter again. It should work.




回答6:


Its probably the libffi6 package that you want, that installs a libffi.so.6.

sudo apt-get install libffi6


来源:https://stackoverflow.com/questions/61875869/ubuntu-20-04-upgrade-python-missing-libffi-so-6

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!