-
-
Notifications
You must be signed in to change notification settings - Fork 201
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
KiKit pip install broken on newer Linux distros (i.e. Ubuntu 24.04, etc.) #733
Comments
You can find Debian packages here: This is not a KiKit issue, but a Python developers style of solving things (reinventing the wheel and applying the Windows style). |
Thanks for the reply and the link, I'll give it a shot. Yeah, I know this is not specifically a KiKit issue, Python is out of control IMO. As an aside, it would be nice if KiKit would just "install" by unzipping the code into a directory of my choice and adding it to my path (or setting a KIKIT_DIR environment variable, etc.). |
I do this for all the scripts I fork. In the case of KiKit I didn't include the script yet. So now I committed it: Also note that I maintain a Debian repo that contains KiKit and its dependencies, here is explained: https://set-soft.github.io/debian/ |
Thanks for the wrapper script. I have managed to piece together a solution that works for me. I like things simple, and unfortunately dependency hell is anything but simple (and getting worse, IMO). In case this helps anyone else, below is the process I used: I found the list of dependencies from the kikit repo
Of these, Ubuntu 24.04
I found where my system python searches for packages by running: This yields a list of directories, of which there is a path in my home directory: So I put cloned the missing repos there and copied the python code such that the modules would be picked up:
At this point KiCad is happy, it finds KiKit and all is well. I copied the No magic, no fuss, no |
Hi @dnotq ! |
Hey @set-soft any idea on issue tracking for this? |
Hi @snhobbs ! The message is part of a PEP recommendation from Python, not an idea from Linux distros. What the message says is that installing something with pip on a system with its own package manager could lead to undesirable problems. So the solution is to avoid pip for systems with a package manager. This is something already known, and this is the reason behind the Debian packages I maintain. IMHO Python developer are wrong, the problem is that they like the Windows chaos and solve things in the "Windows way". They should change their mind and cooperate with the system packages. The problem is the complexity, but their solution isn't acceptable. While playing with AI inference I saw how bad pip can behave. When packages can weight GBs it becomes impossible to do things in the way pip was designed. And the mechanism used to declare dependencies in Python is obsolete, it doesn't work. Package systems like the one used by Debian solved these problems years ago. In the case of KiKit on Linux: if your system is based on Debian, just use the packages I provide, this solves all the dependency problems. In fact I hack some stuff to avoid ridiculous dependencies. On other Linux systems: use Python virtual environments, they are a waste of resources, but more efficient than docker images. |
Prerequisites
KiKit version
Install is broken
KiCAD version
8.0.5
Operating system
Kubuntu 24.04 kernel 6.8.0-40-generic (64-bit)
Description
I had a working kikit on my 22.04 LTS, but I updated to 24.04 LTS and now I get a kikit install warning any time I open a board in KiCad. I decided to redo the command line install part, but it looks like all things Python and pip have now changed in Linux-land and beyond. Lovely.
Of course kikit is not in the system package, and kikit is the ONLY reason I had to install pip at all, so yeah, deleting all of this now. There has got to be an easier way to install/run kikit... Isn't that the whole reason for using a scripting language?
Steps to Reproduce
Try to pip install KiKit on Ubuntu 24.04.
The text was updated successfully, but these errors were encountered: