OctoPrint 1.8.0 will require Python 3

As I said, you won't be able to update to a new version that is Py3 exclusive. Pip simply won't let you. So you won't be able to "accidentally" update and then find stuff broken, you simply won't be able to update in the first place, and I will also put stuff in place so you won't even get told there's a new version available.

This might not be standard in the Node (or sadly the Python community, as I found), but it certainly is something I intend to make every use of that I can.

Your phrasing made you sound very much like you were lecturing me on something that people know I'm well aware of, have been sticking to, even explained repeatedly in public communication on how I've been bending over backwards to ensure nothing breaks for people, and in which I have probably been doing a better job than most projects in adhering to way beyond what SemVer actually requires (which, again, is on public API changes, not runtime environments - this is your interpretation and/or desire, but the SemVer spec clearly only speaks about publicly consumed APIs of any kind). And that kind of rubbed people the wrong way, including myself tbh.

In either case, rest assured that I've put a TON of thought into this over the course of the past two years, took precautions and will do everything in my power so that most people who would in theory be affected probably won't even notice something's changed, unless being told so (which OctoPrint will do however to ensure they are aware that action on their part will be needed to continue to receive upgrades). And please also keep in mind that OctoPrint isn't a library, it's an end user facing application - the users aren't projects, build automations, package.lock files or whatever else, it's people running it on actual hardware.

edit Also, just for the record, the docs on OctoPrint's versioning scheme :wink:

I apologize.

I misunderstood the python particulars of the problem, and I was also looking at it through the lens of a library which needs a different kind of version numbering contract than a product.

I never meant to cause any problems or hurt feelings. I do love OctoPrint, but I have never before stuck my head into the development side of it. Never felt the need. I'm not aware of any of what's common knowledge in the community, and never had the need to read the docs because it's such a great, easy to use app! My intent was only to share knowledge if it happened to be missing (which based on my incorrect interpretation of how semver would apply, it did seem to maybe be missing).

I sent you a donation as a gesture of my goodwill. Thanks again for such a great project.

5 Likes

All good, no hard feelings here and I'm glad we could get this misunderstanding out of the way :slight_smile:

1 Like

Will I need to remove older versions of python? I’ve been getting weird update issues already from this issue with plugins.

No, OctoPrint is only concerned with the version of Python it's installed under - the others should not get in the way. I'm not aware of any issues with plugins getting confused like this - if you open your own get help topic we should be able to look into it.

1 Like

I agree apparently I am already on 3.9.2

Looking at my web interface I am on Connection

OctoPrint 1.7.3
Python 3.7.3
OctoPi 0.18.0

So just a case of updating to Octoprint 1.8.0 some how.

1 Like

For the record, OctoPrint 1.8.0 isn't released yet, so you can't yet update to it. Once it releases, anyone on Python 3 will get the usual update notification.

Anyone that ONLY has Python 2 installed at this point, after all the press, notifications, warning messages, etc. is going to end up with much more than Octoprint broken. It is just a matter of time. Glad you are taking some reasonable steps to avoid people breaking their Octoprint installs, but I think in the long run it might be better for them to have something they use break as a wake up call.

https://www.activestate.com/products/python/python-2-end-of-life-security-updates/

1 Like

Agreed, but tbh, I already get enough flak for hard decisions I have to make

Since the 2 years are regularly mentioned here: Note that upstream support != distro support: Many still supported Linux distribution versions ship (and hence support) Python 2 packages/sources and provide security and bug fix patches when needed. This is likely the reason why there is still a considerable large number of systems with Python 2 even installed.

But I totally agree that dropping Python 2 support for OctoPrint is highly welcome. Python 3 is available and shipped by distros since I can think. Sadly there are relevant projects out there which didn't even manage to support Python 3 until now :grinning_face_with_smiling_eyes:.

When will 1.8 be released ? cannot seem to find this info anywhere ?
can it not be pinned or added to the original post ?
will it be released in 1 month, 6 months, 1 year ?

We're aiming to start the release candidates very shortly, it's feature-frozen already with just a few bugs being worked out. After release canidates start it's usually around a month for the stable release to be rolled out.

2 Likes

I am now on python 3.6.9, should I just remove the entire venv and reinstall OctoPrint once I upgrade my python3 to >= 3.7?
Because I tried just upgrading the python3, my OctoPrint will just crash!

Any advice will be appreciated.

How did you upgrade?
Did you use this script? Upgrade your OctoPrint install to Python 3!

Hi thanks for the reply.
I did try the script but it won't let me and kept prompting you are using python3. Is there any way to get around it?

OctoPrint requires python 3.7+, so you'll need a venv with that.

okay in the end I had to remove the venv built on 3.6.9 and install 3.7 then install python3.7-venv then go over the installation to have OctoPrint 1.8.0.

Many thanks

Are you aware that there appears to be a problem installing Octoscreen after upgrading Octopi using their Raspberry Pi Imager? If I follow your directions to insert the relevant lines in your post using Putty, I just go back to a sign in prompt on the Pi 7" screen.

@tjwitman - doesn't seem related to the original post here, which is about OctoPrint 1.8.0 requiring Python 3, there's no instructions to follow directly here.