yum or dnf command fails with an error "ImportError: cannot import name 'encoding'"

Solution Verified - Updated -

Issue

  • yum or dnf command fails with the following traceback error on RHEL 8 :

    # yum update
    
    Traceback (most recent call last):
     File "/usr/lib/python3.6/site-packages/dnf/crypto.py", line 35, in <module>
       from gpg import Context
     File "/usr/lib64/python3.6/site-packages/gpg/__init__.py", line 123, in <module>
       from . import core
     File "/usr/lib64/python3.6/site-packages/gpg/core.py", line 12, in <module>
       from . import constants
     File "/usr/lib64/python3.6/site-packages/gpg/constants/__init__.py", line 28, in <module>
       from . import data, keylist, sig, tofu  # The subdirs.
     File "/usr/lib64/python3.6/site-packages/gpg/constants/data/__init__.py", line 3, in <module>
       from . import encoding
    ImportError: cannot import name 'encoding'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
     File "/usr/bin/yum", line 61, in <module>
       from dnf.cli import main
     File "/usr/lib/python3.6/site-packages/dnf/__init__.py", line 30, in <module>
       import dnf.base
     File "/usr/lib/python3.6/site-packages/dnf/base.py", line 35, in <module>
       from dnf.db.history import SwdbInterface
     File "/usr/lib/python3.6/site-packages/dnf/db/history.py", line 28, in <module>
       from dnf.yum import misc
     File "/usr/lib/python3.6/site-packages/dnf/yum/misc.py", line 29, in <module>
       import dnf.crypto
     File "/usr/lib/python3.6/site-packages/dnf/crypto.py", line 38, in <module>
       import gpgme
    ModuleNotFoundError: No module named 'gpgme'
    
  • yum or dnf command fails with the following traceback error on RHEL 9 :

    # dnf repolist
    
    Traceback (most recent call last):
     File "/usr/lib/python3.9/site-packages/dnf/crypto.py", line 35, in <module>
       from gpg import Context
    File "/usr/lib64/python3.9/site-packages/gpg/__init__.py", line 123, in <module>
       from . import core
     File "/usr/lib64/python3.9/site-packages/gpg/core.py", line 12, in <module>
       from . import constants
     File "/usr/lib64/python3.9/site-packages/gpg/constants/__init__.py", line 28, in <module>
       from . import data, keylist, sig, tofu  # The subdirs.
     File "/usr/lib64/python3.9/site-packages/gpg/constants/data/__init__.py", line 3, in <module>
       from . import encoding
    ImportError: cannot import name 'encoding' from partially initialized module 'gpg.constants.data' (most likely due to a circular import) (/usr/lib64/python3.9/site-packages/gpg/constants/data/__init__.py)
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
     File "/usr/bin/dnf", line 61, in <module>
       from dnf.cli import main
     File "/usr/lib/python3.9/site-packages/dnf/__init__.py", line 30, in <module>
       import dnf.base
     File "/usr/lib/python3.9/site-packages/dnf/base.py", line 35, in <module>
       from dnf.db.history import SwdbInterface
     File "/usr/lib/python3.9/site-packages/dnf/db/history.py", line 28, in <module>
       from dnf.yum import misc
     File "/usr/lib/python3.9/site-packages/dnf/yum/misc.py", line 29, in <module>
       import dnf.crypto
     File "/usr/lib/python3.9/site-packages/dnf/crypto.py", line 38, in <module>
       import gpgme
    ModuleNotFoundError: No module named 'gpgme'
    

Environment

  • Red Hat Enterprise Linux 8
  • Red Hat Enterprise Linux 9

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content