Description of problem: can't import openpyxl Version-Release number of selected component (if applicable): python3-openpyxl-2.6.2-6.fc33.noarch How reproducible: easily Steps to Reproduce: 1. in a rawhide VM or chroot 2. python3 -c 'import openpyxl' 3. Actual results: exception ModuleNotFoundError: No module named 'xml.etree.cElementTree' Expected results: no exception Additional info: https://docs.python.org/3.9/whatsnew/3.9.html#removed "The xml.etree.cElementTree module has been removed, use the xml.etree.ElementTree module instead. Since Python 3.3 the xml.etree.cElementTree module has been deprecated, the xml.etree.ElementTree module uses a fast implementation whenever available." According to mhroncok in BZ#1843783 : /usr/lib/python3.9/site-packages/openpyxl/xml/functions.py And the problem is, it has: from lxml.etree import XMLSyntaxError if DEFUSEDXML is True: from defusedxml.common import DefusedXmlException from defusedxml.cElementTree import iterparse from defusedxml.lxml import fromstring as _fromstring, tostring def fromstring(*args, **kwargs): try: return _fromstring(*args, **kwargs) except XMLSyntaxError as e: raise DefusedXmlException(str(e)) else: from lxml.etree import fromstring, tostring from xml.etree.cElementTree import iterparse # do not resolve entities safe_parser = XMLParser(resolve_entities=False) fromstring = partial(fromstring, parser=safe_parser) else: try: from xml.etree.cElementTree import ( ElementTree, Element, SubElement, QName, register_namespace ) if DEFUSEDXML is True: from defusedxml.cElementTree import ( fromstring, tostring, iterparse, ) else: from xml.etree.cElementTree import ( fromstring, tostring, iterparse ) except ImportError: from xml.etree.ElementTree import ( ElementTree, Element, SubElement, QName, register_namespace ) if DEFUSEDXML is True: from defusedxml.ElementTree import ( fromstring, tostring, iterparse, ) else: from xml.etree.ElementTree import ( fromstring, tostring, iterparse, ) from et_xmlfile import xmlfile So it only fails if I install lxml: <mock-chroot> sh-5.0# rpm -q python3-lxml python3-lxml-4.5.1-1.fc33.x86_64 <mock-chroot> sh-5.0# python3 -c 'import openpyxl' Traceback (most recent call last): File "<string>", line 1, in <module> File "/usr/lib/python3.9/site-packages/openpyxl/__init__.py", line 6, in <module> from openpyxl.workbook import Workbook File "/usr/lib/python3.9/site-packages/openpyxl/workbook/__init__.py", line 5, in <module> from .workbook import Workbook File "/usr/lib/python3.9/site-packages/openpyxl/workbook/workbook.py", line 8, in <module> from openpyxl.worksheet.worksheet import Worksheet File "/usr/lib/python3.9/site-packages/openpyxl/worksheet/worksheet.py", line 30, in <module> from openpyxl.cell import Cell, MergedCell File "/usr/lib/python3.9/site-packages/openpyxl/cell/__init__.py", line 4, in <module> from .cell import Cell, WriteOnlyCell, MergedCell File "/usr/lib/python3.9/site-packages/openpyxl/cell/cell.py", line 46, in <module> from openpyxl.utils.inference import ( File "/usr/lib/python3.9/site-packages/openpyxl/utils/inference.py", line 10, in <module> from openpyxl.styles import numbers File "/usr/lib/python3.9/site-packages/openpyxl/styles/__init__.py", line 5, in <module> from .alignment import Alignment File "/usr/lib/python3.9/site-packages/openpyxl/styles/alignment.py", line 6, in <module> from openpyxl.descriptors import Bool, MinMax, Min, Alias, NoneSet File "/usr/lib/python3.9/site-packages/openpyxl/descriptors/__init__.py", line 5, in <module> from .sequence import Sequence File "/usr/lib/python3.9/site-packages/openpyxl/descriptors/sequence.py", line 5, in <module> from openpyxl.xml.functions import Element File "/usr/lib/python3.9/site-packages/openpyxl/xml/functions.py", line 40, in <module> from xml.etree.cElementTree import iterparse ModuleNotFoundError: No module named 'xml.etree.cElementTree' Also fails with both lxml and defusedxml: <mock-chroot> sh-5.0# python3 -c 'import openpyxl' Traceback (most recent call last): File "<string>", line 1, in <module> File "/usr/lib/python3.9/site-packages/openpyxl/__init__.py", line 6, in <module> from openpyxl.workbook import Workbook File "/usr/lib/python3.9/site-packages/openpyxl/workbook/__init__.py", line 5, in <module> from .workbook import Workbook File "/usr/lib/python3.9/site-packages/openpyxl/workbook/workbook.py", line 8, in <module> from openpyxl.worksheet.worksheet import Worksheet File "/usr/lib/python3.9/site-packages/openpyxl/worksheet/worksheet.py", line 30, in <module> from openpyxl.cell import Cell, MergedCell File "/usr/lib/python3.9/site-packages/openpyxl/cell/__init__.py", line 4, in <module> from .cell import Cell, WriteOnlyCell, MergedCell File "/usr/lib/python3.9/site-packages/openpyxl/cell/cell.py", line 46, in <module> from openpyxl.utils.inference import ( File "/usr/lib/python3.9/site-packages/openpyxl/utils/inference.py", line 10, in <module> from openpyxl.styles import numbers File "/usr/lib/python3.9/site-packages/openpyxl/styles/__init__.py", line 5, in <module> from .alignment import Alignment File "/usr/lib/python3.9/site-packages/openpyxl/styles/alignment.py", line 6, in <module> from openpyxl.descriptors import Bool, MinMax, Min, Alias, NoneSet File "/usr/lib/python3.9/site-packages/openpyxl/descriptors/__init__.py", line 5, in <module> from .sequence import Sequence File "/usr/lib/python3.9/site-packages/openpyxl/descriptors/sequence.py", line 5, in <module> from openpyxl.xml.functions import Element File "/usr/lib/python3.9/site-packages/openpyxl/xml/functions.py", line 30, in <module> from defusedxml.cElementTree import iterparse File "/usr/lib/python3.9/site-packages/defusedxml/cElementTree.py", line 13, in <module> raise ImportError("cElementTree has been removed from Python 3.9") ImportError: cElementTree has been removed from Python 3.9 This is a bug in openpyxl. It only happens when python3-lxml is installed. This bug is preventing the PCP package from being built in rawhide (it has a builddep on python3-openpyxl). Thanks
See also https://github.com/python/cpython/pull/20780 -- the removal will be reverted.
Fixed via updating to 3.0.3