2 votes

PyGObject, venv et Ubuntu 20.10 : ImportError : libffi.so.7 : cannot open shared object file : No such file or directory

Après la mise à jour d'Ubuntu 20.04 à Ubuntu 20.10, je ne suis pas en mesure d'exécuter des applications PyGObject sur un environnement virtuel Python.

Je peux reproduire le problème en suivant ces étapes simples :

sudo apt-get install python3-venv
python3 -m venv venv
source env/bin/activate
pip install PyGObject==3.38.0
python3 hw.py

hw.py est l'objet standard PyGObject Hello World :

#!/usr/bin/env python3

import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk

window = Gtk.Window(title="Hello World")
window.show()
window.connect("destroy", Gtk.main_quit)
Gtk.main()

Quand j'essaie de l'exécuter, il y a cette erreur :

$ python3 hw.py 
Traceback (most recent call last):
  File "hw.py", line 3, in <module>
    import gi
  File "/home/leinardi/temp/hw/venv/lib/python3.8/site-packages/gi/__init__.py", line 40, in <module>
    from . import _gi
ImportError: libffi.so.7: cannot open shared object file: No such file or directory

Running hw.py sur l'environnement système fonctionne correctement (le problème ne se pose que lorsqu'on utilise l'environnement virtuel).

Une solution de contournement est de trouver et de fournir une copie de libffi.so.7 en /usr/lib/x86_64-linux-gnu/ mais, comme cette version de la bibliothèque n'est pas disponible dans les dépôts officiels d'Ubuntu 20.10, cette opération est difficile et peu sûre.

5voto

antisa Points 161

J'ai eu un problème similaire avec libffi.so.6 mais c'était pour la 20.04, vérifiez ma solution ici. https://stackoverflow.com/a/63329830/6881647

Vous pouvez essayer la même chose sur 20.10 en téléchargeant le paquet depuis ici https://mirrors.edge.kernel.org/ubuntu/pool/main/libf/libffi/libffi7_3.3-4_amd64.deb et de l'installer. Cela mettra les 2 fichiers ( libffi.so.7 y libffi.so.7.1.0 ) à l'intérieur de /usr/lib/x86_64-linux-gnu/ et ça ne devrait pas écraser quoi que ce soit.

Pouvez-vous expliquer pourquoi vous considérez que cela est difficile et dangereux ? Il s'agit d'une installation deb simple et pour ce qui est de la partie non sécurisée, le paquet est fourni par les miroirs Ubuntu, pas par une tierce partie ou autre.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X