All went well with the base install, It initially screwed my GPX plugin. I couldn't install the plugin from the plugin manager so installed it manually. Re-created the gpx.ini file and away I went.
If I were a newbie to Linux then I would have given up, So a message to anyone who is new and cannot follow logs and diagnose issues in Linux I would avoid the upgrade if you have tons of plugins. But thank you to whoever created this script. I'm guessing @jneilliii?
Nope not me, @Charlie_Powell all the way. He's new on the scene and has quickly become a plugin author (WS281x LED Status) as well as a huge help in discord, here in the forum, and assisting Gina with issue/bug maintenance triage and fixing.
@Charlie_Powell Sorry, that is not correct. Klipper itself is written in Python. Look at this folder:
klippy is the core of Klipper's functionality. Klipper is still based on Python 2.7.There is even a branch of Klipper where work is being done on porting to Python 3, but it's stale. "Master" gets updates on a daily basis, the branch for Python 3 is three months old.
Octoklipper is simply a regular plugin for Octoprint, written by another guy.
It is not necessary for interoperability, but makes configuration of Klipper available through Octoprint which is pretty nice.
The plugin has a fork for Python 3 which seems to work pretty well.
Klipper itself seems quite stuck in 2.7. The maintainers are very active in developing functional improvements, but questions about Python 3 get canned answer. Since it's nothing I need to expose to the internet, that's sort of ok - as long as it stays compatible with my Octopi.
Ah ok, I read the wrong thing (maybe it was the printer firmware side? can't remember!), sorry.
I have done some more poking and it definitely creates its own virtual environment, looked through the install scripts - as good software does - so there should be no issue at all, since we are only touching OctoPrint's environment.
Klipper will still work, since all OctoPi distributions have both Python 2.7 and 3.x installed at a system level - that does not change in the script, the only thing that does is the virtual environment where OctoPrint (not klipper) is installed.
To add to that: while it is not possible to eg run OctoPrint with Python 3 and a plugin for OctoPrint with Python 2, it is possible to run OctoPrint with Python 3 and Klipper with Python 2 because they are different processes.
From what I have heard, no, the plugin is not required. If you do intend to use the plugin with OctoPrint running on Python 3, you must use the Python 3 version of the plugin. However, Klipper itself can be running on Python 2.
Read (and follow) the instructions on upgrading more carefully. The upgrade script is not a plugin, so it should not be installed as a plugin. The upgrade script is something you would run in an SSH session (eg Putty), or using a keyboard and display on the Pi.
You can use Octoprint and Klipper without the plugin. The printer-queue is /tmp/primter which looks a bit odd, but for Octoprint, Klipper behaves like a standard printer. It handles the common G-codes like temperature control, G28, G1 and the like. The plugin gives you the capability to edit the Klipper-configuration with data like default acceleration etc from within the browser. This is a huge bonus over Marlin where simple things like configuring ABL require the compilation of a new firmware file.
The upgrade worked very well. So simple. Thanks for making the upgrade easy. I did have one issue after the upgrade. Trying to install a new plugin, I got the error message that my OctoPrint was not connected to the internet. I ran through all of the connectivity checks and it was connected. I spent a little time trying to identify the issue with no success. I rebooted Octoprint and the Raspberry Pi several times, no joy.
I decided to manually download the zip file for the plugin that I wanted. It upgraded and once the system rebooted it was working fine.
You should get a notice that it has been transferred, but you need to reinstall as the updates are looking in the wrong place. See plugin notices if you don't get it, at the bottom Plugin notices