qtile: Qtile crash on Python update (3.10) [Arch Linux]

I met this problem when I updated the whole system (Arch Linux) this morning. After restarting the computer, qtile just crashed. Here is the error message.

Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/libqtile/scripts/main.py", line 9, in <module>
    import pkg_resources
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3243, in <module>
    def _initialize_master_working_set():
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3226, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3255, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 559, in _build_master
    ws = cls()
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 552, in __init__
    self.add_entry(entry)
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 608, in add_entry
    for dist in find_distributions(entry, True):
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 2063, in find_on_path
    for dist in factory(fullpath):
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 2128, in distributions_from_metadata
    yield Distribution.from_location(
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 2591, in from_location
    )._reload_version()
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 2989, in _reload_version
    md_version = self._get_version()
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 2770, in _get_version
    version = _version_from_file(lines)
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 2554, in _version_from_file
    line = next(iter(version_lines), '')
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 2765, in _get_metadata
    for line in self.get_metadata_lines(name):
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 1417, in get_metadata_lines
    return yield_lines(self.get_metadata(name))
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 1407, in get_metadata
    value = self._get(path)
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 1611, in _get
    with open(path, 'rb') as stream:
PermissionError: [Errno 13] Permission denied: '/usr/lib/python3.10/site-packages/google_api_core-2.3.2-py3.10.egg-info/PKG-INFO'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/qtile", line 33, in <module>
    sys.exit(load_entry_point('qtile==0.18.1', 'console_scripts', 'qtile')())
  File "/usr/bin/qtile", line 25, in importlib_load_entry_point
    return next(matches).load()
  File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 162, in load
    module = import_module(match.group('module'))
  File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/usr/lib/python3.10/site-packages/libqtile/scripts/main.py", line 11, in <module>
    except (pkg_resources.DistributionNotFound, ImportError):
NameError: name 'pkg_resources' is not defined

It seems like the Python update causes this, or I’ve missed something. Thanks in advance.

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 15 (7 by maintainers)

Most upvoted comments

@elParaguayo Yes, I agree with you. I don’t clearly understand why the permissions changed after updating the system. @erlonbie You can do that by running chown commands like so: sudo chown [your-target-username] /path/to/the/files/that/threw/you/permission/error/messages. In my case, I ran these commands: sudo chown username /usr/lib/python3.10/site-packages/google_api_core-2.3.2-py3.10.egg-info/namespace_packages.txt and sudo chown username /usr/lib/python3.10/site-packages/google_api_core-2.3.2-py3.10.egg-info/PKG-INFO.