Had to wipe my old server and install Ubuntu Server LTS. I then used octoprint_deploy to install Octoprint. It works up to the point of installing plugins. They all fail with the following:
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
│ exit code: 255
╰─> [1 lines of output]
Could not import OctoPrint's setuptools, are you sure you are running that under the same python installation that OctoPrint is installed under?
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed to build 'https://github.com/LazeMSS/OctoPrint-UICustomizer/archive/main.zip' when getting requirements to build wheel
This is just one of them. I can get into my instance and if I try to install plugins in the manager I get the same errors. I've been scouring everywhere and trying so many suggestions but none of them seem to fix this issue. No even AI seems to resolve this issue today. Please kindly help me resolve this.
Thanks!!!! Ok your suggestions works via command line and that link worked to add the pip setting and now I can install plugins again. Adding --no-build-isolation to the pip configuration in Octoprint allows me to install plugins but what does that mean? Is there something wrong with my Octoprint install? I literally did a bare Ubuntu Server 24.0.4 install and then ran the octoprint_deploy 1.0.11 script. Right off the bat it could not install plugins. Then in the Octoprint gui I couldn't install them either. I feel like this is a work-around and would rather have a permanent fix but if this is the fix then that works too.
This seems similar to the error that I saw over the weekend, trying to install plug-ins after I was prompted to update the version of pip to 25.3. I rolled everything back to a pre-update backup, and everything worked again.
I have been loosing all hair that is left on my head on the last four days triyng to deal with this issue.
the option "--no-build-isolation" tottaly solved it and I used it on the pip additional arguments on plugin manager.
Everything started when I tried to update python 3.8.9 (from EOL warning) to a newer version (3.11.9 in my case).
octoprint-venv-tool ran almost fine the first time but gave an error on the last plugin (slicerthumbnails) I reflashed an backup image into my SD card and when I tried again nothing installed anymore.
Wish I had seen this earlier before i went to the trouble to image a new sd card and restore backup. Also spent the last hour or so trying anything I could find. The --no-build-isolation works for me. Luckily I still have the old sd card so I can go back to it.
What versions of pip are those of you encountering this running?
I just saw that pip 25.3 was released a few days ago, which deprecated a whole bunch of things, and that could very well be the reason if that's the version that's being pulled in.
OctoPi 1.1.0 should not be shipping with that yet, and pip autoupdates are disabled for the very reason of possible breaking behaviour changes, but octoprint-venv-tool might be pulling that in. I'll look into a solution for that for now.
With that being said --no-build-isolation is needed for plugins that have not yet migrated their setup.py or preferably their whole installation method to a more modern approach that should stay compatible with Python tooling for a while. It's sadly a bit of a mess right now as Python packaging is seeing a ton of work being put in (finally!) but alas that is also breaking a lot of older stuff, and if maintainers don't keep their stuff updated, things can and do break.
The situation here is that for a long time, in order to put some burden off of maintainer, OctoPrint's plugin template utilized some tooling shipped with OctoPrint for creating the setup boilerplate. For that to work though, plugins needed to access that from the OctoPrint install during installation, and thus needed to be installed into the same virtual environment. Now, a few years back pip started to introduce something called build isolation, which makes pip first build a package you are trying to install into a freshly created temporary virtual environment with only the dependencies the package communicates it needs for this setup phase. That of course then means that OctoPrint and thus the required setup tooling is missing. For the longest time this was only done if a pyproject.toml file was found, and so didn't affect most plugins. Alas, it seems something has changed now if build isolation is being forced even on older plugins that still install fine under older pip versions. My money would be on Deprecate legacy `setup.py bdist_wheel` mechanism for building projects · Issue #6334 · pypa/pip · GitHub as the most likely culprit here.
What I'll look into from my side here is
pinning pip to a version prior to 25.3 in octoprint-venv-tool for now
for OctoPrint 1.11.4: if pip 25.3 is detected, trying to inspect a plugin package prior to attempted installation and adding --no-build-isolation if needed (likely if no pyproject.toml is found therein)
upgraded my Debian boxes to trixie, and plugins fail to install.
went back to bookworm, same problem.
New install of trixie now.
I ended up using the manual install of Octoprint rather than octoprint deploy, since that wasn't working either.
I've been through a crash course on python, stumbled across this post (after trying to create a new post in Get Help, but couldn't find the upload for the systeminfo bundle.
In OctoPrint Settings > Software Updates "Check for Updates" will say pip upgrade is available. I hit ignore and manually hit the [Update] button for plugins to update. Update button still there for pip for 25.2 to 25.3
Only if you've told it to check for pip updates, that's disabled by default precisely for reasons like this, and there's also a big fat warning next to it.
I see that now -- thanks for reiterating. This was on an early/alpha? bookworm octopi system imaged originally about a year ago, so I think I had enabled that for a troubleshooting reason some time back and hadn't disabled it again.
a more recently imaged raspberry pi host i use does not have that setting set.