Bug #49180
Conflit entre feedparser<6 et le module base64 de python 3.9
0%
Description
python3.9/site-packages/feedparser.py plante parce qu'il référence l'alias comme valeur de replie (qui n'est pas utilisée).
import feedparser File "/home/nroche/envs/publik-env-py3/lib/python3.9/site-packages/feedparser.py", line 94, in <module> _base64decode = getattr(base64, 'decodebytes', base64.decodestring) AttributeError: module 'base64' has no attribute 'decodestring'
D'un côté on a feedparser<6 pour garder la compatibilité python3.5 :
https://dev.entrouvert.org/projects/combo/repository/184/revisions/d936639e814eb060a7bebdda03915cfe291529ce
et de l'autre la disparition de l'alias decodestring
dans la module base64 en python 3.9 :
https://docs.python.org/3.8/library/base64.html#base64.decodestring vs https://docs.python.org/3.9/library/base64.html#base64.decodebytes
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Emmanuel Cazenave il y a plus de 3 ans
C'est quoi la trace complète ?
Quelle est ta version de feedparser ? (dans le venv, pip show feedparser).
Mis à jour par Nicolas Roche il y a plus de 3 ans
$ combo-manage migrate-schemas <string>:192: UserWarning: journald will not be used directly, please install python-systemd Traceback (most recent call last): File "/home/nroche/src/combo/manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/home/nroche/envs/publik-env-py3/lib/python3.9/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line utility.execute() File "/home/nroche/envs/publik-env-py3/lib/python3.9/site-packages/django/core/management/__init__.py", line 338, in execute django.setup() File "/home/nroche/envs/publik-env-py3/lib/python3.9/site-packages/django/__init__.py", line 27, in setup apps.populate(settings.INSTALLED_APPS) File "/home/nroche/envs/publik-env-py3/lib/python3.9/site-packages/django/apps/registry.py", line 108, in populate app_config.import_models() File "/home/nroche/envs/publik-env-py3/lib/python3.9/site-packages/django/apps/config.py", line 202, in import_models self.models_module = import_module(models_module_name) File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1030, in _gcd_import File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 680, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 790, in exec_module File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "/home/nroche/src/combo/combo/data/models.py", line 20, in <module> import feedparser File "/home/nroche/envs/publik-env-py3/lib/python3.9/site-packages/feedparser.py", line 93, in <module> _base64decode = getattr(base64, 'decodebytes', base64.decodestring) AttributeError: module 'base64' has no attribute 'decodestring' $ pip show feedparser Name: feedparser Version: 5.2.1
Mis à jour par Emmanuel Cazenave il y a plus de 3 ans
- Tracker changé de Support à Bug
- Projet changé de Publik Installation Développeur à Combo
Je n'ai pas de python3.9 sur ma machine je ne peux pas investiguer, aussi c'est plutôt du combo, je déplace.
Mis à jour par Frédéric Péters il y a plus de 3 ans
Remonter au pourquoi du <6; si c'est juste une histoire de compat de version python, le retirer et le mettre dans le tox.ini à la place.
Mis à jour par Nicolas Roche il y a plus de 3 ans
- Fichier 0001-setup-relax-feedparser-version-for-python-3.9-49180.patch 0001-setup-relax-feedparser-version-for-python-3.9-49180.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Assigné à mis à Nicolas Roche
- Patch proposed changé de Non à Oui
- Planning changé de Non à Oui
Remonter au pourquoi du <6
Je n'ai rien trouvé de plus que ce message dans les logs.
J'ai reporté la même correction dans passerelle : #49218.
Je pensais aussi devoir le faire pour w.c.s, mais la version <6 n'y était spécifiée nulle part (ni dans wcs, ni dans publik-devinst).
Avec ces 2 patchs publik-devinst fonctionne sur ma machine en python 3.9.
Mis à jour par Frédéric Péters il y a plus de 3 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Nicolas Roche il y a plus de 3 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 689391b451cb9f69b19e822dddf8b481c73d480b Author: Nicolas ROCHE <nroche@entrouvert.com> Date: Tue Dec 8 08:26:51 2020 +0100 setup: relax feedparser version for python 3.9 (#49180)
Mis à jour par Nicolas Roche il y a plus de 3 ans
- Lié à Development #49218: Relacher la contrainte sur feedparseur ajouté
Mis à jour par Frédéric Péters il y a plus de 3 ans
- Statut changé de Résolu (à déployer) à Solution déployée
setup: relax feedparser version for python 3.9 (#49180)