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

Pythonロゴ

下記などを参考にて、遅ればせながら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

以上になります

鹿児島県の出水市という所に住んでいまして、インターネット周辺で色々活動して行きたいと思ってるところです。 Webサイト作ったり、サーバ設定したり、プログラムしたりしている、釣りと木工好きなMacユーザです。 今はデータサイエンスに興味を持って競馬AI予想を頑張ってます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

コメントする

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