-
-
Notifications
You must be signed in to change notification settings - Fork 696
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update documentation to use pipx #4804
Comments
It didn't work because you have to reinstall for major python release upgrades (i.e. you only had the qtile module installed in |
Right, I know why it broke on OS upgrade, this is not the first year I'm using Qtile, but this is the first time I was forced to use pipx instead. |
Why were you forced to use I've never used If you're getting build errors with |
On Ubuntu 24.04 I can not install Qtile with packaged pip into
Yes, pipx will create a virtual environment per-package under |
I think the concern with that was that packages installed to The solution is either to have your package manager handle installation or install in a virtual environment. For the latter, |
I know Python ecosystem is not trivial, but as a regular non-Python developer if I run stock Ubuntu and |
Agreed. One of the complaints we get about our docs is that they're aimed at more experienced users. Would you be willing to submit a PR with some changes? |
I can try, but I don't feel very confident in whatever I'm suggesting here 😅 |
I personally just use --break-system-packages, but I expect that will not be appropriate for everyone :) |
That's because you know what you're doing! |
Well, let's not go that far :) My reasoning is: we have a relatively small set of dependencies, that are mostly unique to us: cffi, cairocffi, xcffib, and pywayland. We allow a relatively old version of cffi, so the system one probably satisfies pip and will not need to be updated. I have packages that depend on python3-cffi installed on my system. For the rest of the hard dependencies, at least on my system, qtile is the only package that uses them. If users have a package installed from their package manager that depends on the system python3-xcffib that is too old, installing our newer one over the top will break things (i think? xcffib itself has a stable API, but there's some python packaging nonsense here that breaks). However, I don't have anything like this on my system, so it's fine to install these to my user's $PYTHONPATH. I suppose there are other optional ones that we have, e.g. setproctitle or any of the libraries the various widgets use. If the system has an incompatible (meaning, API incompatible) one of those on it, things will break. Since we don't (and don't want to) specify these as hard dependencies, the solution is to build some API version detection code into qtile so it can use the old and new versions of those deps. But this hasn't been a problem as far as I know. I suppose we could put all this in the docs, but it is a lot of mental load to keep in your head just to install the damn thing and play with it, I agree. |
Things were so much easier when Ubuntu/Debian shipped Qtile in their repos. Maybe someone wants to create a PPA? |
Yeah, unfortunately our packager for debian ran out of time/interest. |
In Debian and derivatives, which do not have the qtile package in .deb, the only 2 ways to install them are to do an installation in a virtual python prefix or use the --break-system-packages command. In Debian I have been using the second alternative for months without any problem on my system |
I just installed qtile on a fresh Debian 12 install using pipx myself. Perhaps this method as well as the "--break-system-packages" could both be listed as options? It seems like pipx would be more in-line with Debian's emphasis on stability, so perhaps that could be the preferred one. On a related note, I believe the Ubuntu/Debian section only gives instructions for X11 as the backend. If that is true, could we also add Wayland instructions for that section? |
sure, can you send a patch with all of that? |
This issue is stale because it has been open 90 days with no activity. Remove the |
I just upgraded from Ubuntu 22.04 to 24.04 and expectedly Qtile didn't start anymore due to Python version change (3.10 -> 3.12). However, installation with pip did't work this time and I had to use pipx instead.
So instead of this:
I had to do this:
And then to install additional layout (I think will be simialar for extras):
I'm not working with Python, so someone more knowledgable might want to update the documentation on how to do this correctly.
I suspect the same will work on older versions of Ubuntu and other distros, so pipx might as well be the default way going forward.
The text was updated successfully, but these errors were encountered: