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

下記などを参考にて、遅ればせながらUbuntu18 –> 20へアップグレード終わりました。
見た目もコントラストがはっきりした感じになり好きな感じです。 アップグレード作業は何かと緊張するものですが、一応無事に終わりこれでひと安心です。

Jupyter labで下記エラーが出た

1箇所だけ、pyenv + pipenvで管理しているPythonのプロジェクトで、Jupyter labにエラーが出ました。
[9620]$ jupyter lab

Traceback (most recent call last):
  File "/home/toshiya/.local/share/virtualenvs/keiba-fIgOWeR2/bin/jupyter-lab", line 5, in <module>
    from jupyterlab.labapp import main
  File "/home/toshiya/.local/share/virtualenvs/keiba-fIgOWeR2/lib/python3.7/site-packages/jupyterlab/__init__.py", line 7, in <module>
    from .labapp import LabApp
  File "/home/toshiya/.local/share/virtualenvs/keiba-fIgOWeR2/lib/python3.7/site-packages/jupyterlab/labapp.py", line 15, in <module>
    from jupyter_server.serverapp import flags
  File "/home/toshiya/.local/share/virtualenvs/keiba-fIgOWeR2/lib/python3.7/site-packages/jupyter_server/serverapp.py", line 72, in <module>
    from jupyter_server.services.kernels.kernelmanager import (
  File "/home/toshiya/.local/share/virtualenvs/keiba-fIgOWeR2/lib/python3.7/site-packages/jupyter_server/services/kernels/kernelmanager.py", line 15, in <module>
    from jupyter_client.multikernelmanager import AsyncMultiKernelManager
  File "/home/toshiya/.local/share/virtualenvs/keiba-fIgOWeR2/lib/python3.7/site-packages/jupyter_client/__init__.py", line 6, in <module>
    from .asynchronous import AsyncKernelClient  # noqa
  File "/home/toshiya/.local/share/virtualenvs/keiba-fIgOWeR2/lib/python3.7/site-packages/jupyter_client/asynchronous/__init__.py", line 1, in <module>
    from .client import AsyncKernelClient  # noqa
  File "/home/toshiya/.local/share/virtualenvs/keiba-fIgOWeR2/lib/python3.7/site-packages/jupyter_client/asynchronous/client.py", line 6, in <module>
    from jupyter_client.channels import HBChannel
  File "/home/toshiya/.local/share/virtualenvs/keiba-fIgOWeR2/lib/python3.7/site-packages/jupyter_client/channels.py", line 12, in <module>
    import zmq.asyncio
  File "/home/toshiya/.local/share/virtualenvs/keiba-fIgOWeR2/lib/python3.7/site-packages/zmq/__init__.py", line 61, in <module>
    _load_libzmq()
  File "/home/toshiya/.local/share/virtualenvs/keiba-fIgOWeR2/lib/python3.7/site-packages/zmq/__init__.py", line 23, in _load_libzmq
    import ctypes
  File "/home/toshiya/.pyenv/versions/3.7.7/lib/python3.7/ctypes/__init__.py", line 7, in <module>
    from _ctypes import Union, Structure, Array
ImportError: libffi.so.6: cannot open shared object file: No such file or directory
Qiitaに情報あり、助かりました。 上記を参考に、私がこのプロジェクトで使っているPythonのバージョンは3.7.7だったので
[9621]$ pyenv version
3.7.7 (set by PYENV_VERSION environment variable)
[9623]$ python --version
Python 3.7.7
同じバージョンのPythonを再インストールすることで、このエラーは解決するようです。
[9624]$ pyenv install 3.7.7
pyenv: /home/toshiya/.pyenv/versions/3.7.7 already exists
continue with installation? (y/N) y
Downloading Python-3.7.7.tar.xz...
-> https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tar.xz
Installing Python-3.7.7...
Installed Python-3.7.7 to /home/toshiya/.pyenv/versions/3.7.7
これで元通りJupyter labも使えるようになりました。

poetryでは上記方法でも駄目な場合もありました

poetry環境下では同じエラーが出ましたが、上記方法では上手く修復できませんでした。 こちらを参考にすることで上手く修復できました。

このコマンド等で下調べして、

$ find /usr/lib -name "libffi.so*"
$ ls -l /usr/lib/x86_64-linux-gnu
手持ちの環境に合うように以下のコマンドを実行するとpoetry run jupyter labも起動できました。
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libffi.so.7 /usr/lib/x86_64-linux-gnu/libffi.so.6
以上になります

こういうブログもありました。

人気のあるブログ:

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください