Projet

Général

Profil

Bug #49180

Conflit entre feedparser<6 et le module base64 de python 3.9

Ajouté par Nicolas Roche il y a plus de 3 ans. Mis à jour il y a plus de 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
07 décembre 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Oui

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

Lié à Passerelle - Development #49218: Relacher la contrainte sur feedparseurFermé08 décembre 2020

Actions

Révisions associées

Révision 689391b4 (diff)
Ajouté par Nicolas Roche il y a plus de 3 ans

setup: relax feedparser version for python 3.9 (#49180)

Historique

#1

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).

#2

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
#3

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.

#4

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.

#5

Mis à jour par Nicolas Roche il y a plus de 3 ans

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.

#6

Mis à jour par Frédéric Péters il y a plus de 3 ans

  • Statut changé de Solution proposée à Solution validée
#7

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)
#8

Mis à jour par Nicolas Roche il y a plus de 3 ans

#9

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

Formats disponibles : Atom PDF