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
Où 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.