qtile: Qtile Wayland don't start

Issue description

qtile start -b wayland not initialize

Qtile version

0.18.2.dev54+g1da2e6a0 in Debian

Stack traces

Traceback (most recent call last): File “/usr/local/bin/qtile”, line 33, in sys.exit(load_entry_point(‘qtile==0.18.2.dev54+g1da2e6a0’, ‘console_scripts’, ‘qtile’)()) File “/usr/local/lib/python3.9/dist-packages/qtile-0.18.2.dev54+g1da2e6a0-py3.9-linux-x86_64.egg/libqtile/scripts/main.py”, line 61, in main options.func(options) File “/usr/local/lib/python3.9/dist-packages/qtile-0.18.2.dev54+g1da2e6a0-py3.9-linux-x86_64.egg/libqtile/scripts/start.py”, line 87, in start q = make_qtile(options) File “/usr/local/lib/python3.9/dist-packages/qtile-0.18.2.dev54+g1da2e6a0-py3.9-linux-x86_64.egg/libqtile/scripts/start.py”, line 50, in make_qtile kore = libqtile.backend.get_core(options.backend) File “/usr/local/lib/python3.9/dist-packages/qtile-0.18.2.dev54+g1da2e6a0-py3.9-linux-x86_64.egg/libqtile/backend/init.py”, line 15, in get_core return importlib.import_module(f"libqtile.backend.{backend}.core").Core(*args) File “/usr/lib/python3.9/importlib/init.py”, line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File “”, line 1030, in _gcd_import File “”, line 1007, in _find_and_load File “”, line 986, in _find_and_load_unlocked File “”, line 680, in _load_unlocked File “”, line 850, in exec_module File “”, line 228, in _call_with_frames_removed File “/usr/local/lib/python3.9/dist-packages/qtile-0.18.2.dev54+g1da2e6a0-py3.9-linux-x86_64.egg/libqtile/backend/wayland/core.py”, line 28, in import wlroots.helper as wlroots_helper ModuleNotFoundError: No module named ‘wlroots’

i have wlroots installed in /usr/lib/wlroots

About this issue

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

Most upvoted comments

Ugh! So it looks like this might work if we add all of the cffi dependencies to setup_requires. Unfortunately, this then also means these packages are required for sdist, which should be able to just build the source and doesn’t need to have the dependencies, which would greatly complicate the release creating in github actions (not impossible to do, but would take a bit of work to get fixed up). There is some discussion that build_system is the replacement for setup_requires, but it looks like that gives the same error.

For now, if you re-install pywlroots, but first install cffi, pywayland, and xkbcommon, then it should work. Note that you might need to remove ~/.cache/pip so you re-download and rebuild the packages. We can move this issue over to the pywlroots repo.

Great! I was able to get a fix pushed into pywlroots and a new version cut, so this shouldn’t be a problem moving forward!

Let us know if this continues to be a problem. I’ve moved the underlying problem over to flacjacket/pywlroots#65.

So it looks like this is what is showing up in the pip install log:

  Running setup.py (path:/tmp/pip-install-9tjjy02w/pywlroots_554b3b63490344b1881fe7d0140c9046/setup.py) egg_info for package pywlroots
  Created temporary directory: /tmp/pip-pip-egg-info-1m1fuuph
  Preparing metadata (setup.py): started
  Running command python setup.py egg_info
  /usr/lib/python3.9/distutils/dist.py:274: UserWarning: Unknown distribution option: 'cffi_modules'
    warnings.warn(msg)

That is why we aren’t able to get the cffi module installed. Why this isn’t correctly being handled via the install_requires, I’m not totally sure.

Hmm, I think it should be built when installing with pip. @flacjacket any ideas?

How did you install it? The ffi module needs to be built. This should be done by pip if you used that.

There are a number of dependencies needed for Wayland. See http://docs.qtile.org/en/latest/manual/install/index.html#core-dependencies

That error is because you don’t have pywlroots installed.