Subliminal donne cette erreur dans Ubuntu 18.04
Traceback (most recent call last):
File "/usr/bin/subliminal", line 9, in <module>
load_entry_point('subliminal==1.1.1', 'console_scripts', 'subliminal')()
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 480, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2693, in load_entry_point
return ep.load()
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2324, in load
return self.resolve()
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2330, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "/usr/lib/python3/dist-packages/subliminal/__init__.py", line 10, in <module>
from .api import (ProviderPool, check_video, provider_manager, download_best_subtitles, download_subtitles,
File "/usr/lib/python3/dist-packages/subliminal/api.py", line 13, in <module>
from .subtitle import compute_score, get_subtitle_path
File "/usr/lib/python3/dist-packages/subliminal/subtitle.py", line 7, in <module>
from guessit.matchtree import MatchTree
File "/usr/lib/python3/dist-packages/guessit/__init__.py", line 99, in <module>
from guessit.plugins import transformers
File "/usr/lib/python3/dist-packages/guessit/plugins/transformers.py", line 222, in <module>
reload()
File "/usr/lib/python3/dist-packages/guessit/plugins/transformers.py", line 220, in reload
reload_options(all_transformers())
File "/usr/lib/python3/dist-packages/guessit/plugins/transformers.py", line 179, in all_transformers
return _extensions.objects()
File "/usr/lib/python3/dist-packages/guessit/plugins/transformers.py", line 111, in objects
return self.map(self._get_obj)
File "/usr/lib/python3/dist-packages/stevedore/extension.py", line 261, in map
raise NoMatches('No %s extensions found' % self.namespace)
stevedore.exception.NoMatches: No guessit.transformer extensions found
Sortie de la politique apt-cache subliminale
Installed: 1.1.1-2
Candidate: 1.1.1-2
Version table:
*** 1.1.1-2 500
500 http://in.archive.ubuntu.com/ubuntu bionic/universe AMD64 Packages
500 http://in.archive.ubuntu.com/ubuntu bionic/universe i386 Packages
100 /var/lib/dpkg/status
Une réponse qui fonctionne non seulement pour Ubuntu 18.04, Bionic mais également pour toute version avec pip
installée
Le problème semble être une incompatibilité entre le dernier paquet python stevedore
et guessit
, comme indiqué dans les journaux de rapports de bogue Debian
La solution consisterait à installer une version appropriée de stevedore
à partir du référentiel PyPi , afin de le faire.
Sudo apt-get purge -y python3-stevedore
Sudo pip3 install subliminal stevedore==1.19.1
Maintenant, lancer subliminal
depuis le terminal le laissera fonctionner comme d'habitude:
argparse
fait maintenant partie de Python2 et Python3, mais subliminal
dépend de python3-stevedore
et ce package contient l'entrée argparse
dans requires.txt
. Vous pouvez vérifier cela avec:
Vif
cat /usr/lib/python3/dist-packages/stevedore-1.3.0.Egg-info/requires.txt
Rusé
cat /usr/lib/python3/dist-packages/stevedore-1.5.0.Egg-info/requires.txt
La solution est un hack sale, supprimez la ligne:
Vif
Sudo sed -i.bak '/argparse/d' /usr/lib/python3/dist-packages/stevedore-1.3.0.Egg-info/requires.txt
Rusé
Sudo sed -i.bak '/argparse/d' /usr/lib/python3/dist-packages/stevedore-1.5.0.Egg-info/requires.txt
Pour Bionic (18.04), ce qui précède fonctionne, mais tenez compte du fait que la version de manutentionnaire est supérieure. Il peut être vérifié avec:
ls -l/usr/lib/python3/dist-packages /
puis recherchez le dossier stevedore- *. Dans mon cas:
Sudo sed -i.bak '/ argparse/d' /usr/lib/python3/dist-packages/stevedore-1.28.0.Egg-info/requires.txt
Faites simplement:
pip3 install --user subliminal stevedore==1.19.1
après l’installation de subliminal via apt, afin de corriger la version stevedore. Cela remplacera la version du système.