Updating from 1.3.12 to 1.4.0: ERROR: Package 'setuptools' requires a different Python: 2.7.12 not in '>=3.5'

What is the problem?
I can't update from Octoprint 1.3.12 to 1.4.0 on my Odroid xu4. It's showing the following error message:
ERROR: Package 'setuptools' requires a different Python: 2.7.12 not in '>=3.5'
Full message in log below
What did you already try to solve it?
I installed Python 3.7, and updated pip, I also tried to create a new virtual environment for it in python3. I've also restarted the octoprint services, and restarted the device.

Logs (octoprint.log, serial.log or output on terminal tab at a minimum, browser error console if UI issue ... no logs, no support!)

Updating, please wait.
Collecting h t t p s://github . com/foosel/OctoPrint/archive/1.4.0.zip
Downloading h t t p s:// github . com/foosel/OctoPrint/archive/1.4.0.zip (5.5 MB)
Collecting flask<0.13,>=0.12
Downloading Flask-0.12.5-py2.py3-none-any.whl (81 kB)
Requirement already satisfied: Jinja2<2.9,>=2.8.1 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (2.8.1)
Requirement already satisfied: tornado==4.5.3 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (4.5.3)
Requirement already satisfied: regex!=2018.11.6 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (2020.1.8)
Collecting Flask-Login<0.5,>=0.4.1
Downloading Flask-Login-0.4.1.tar.gz (14 kB)
Requirement already satisfied: Flask-Babel<0.13,>=0.12 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (0.12.2)
Requirement already satisfied: Flask-Assets<0.13,>=0.12 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (0.12)
Requirement already satisfied: blinker<1.5,>=1.4 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (1.4)
Collecting werkzeug<0.17,>=0.16
Downloading Werkzeug-0.16.1-py2.py3-none-any.whl (327 kB)
Requirement already satisfied: cachelib<0.2,>=0.1 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (0.1)
Requirement already satisfied: PyYAML<6,>=5.1 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (5.3)
Collecting markdown<3.2,>=3.1
Downloading Markdown-3.1.1-py2.py3-none-any.whl (87 kB)
Requirement already satisfied: pyserial<3.5,>=3.4 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (3.4)
Requirement already satisfied: netaddr<0.8,>=0.7.19 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (0.7.19)
Requirement already satisfied: watchdog<0.10,>=0.9.0 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (0.9.0)
Requirement already satisfied: sarge==0.1.5post0 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (0.1.5.post0)
Requirement already satisfied: netifaces<0.11,>=0.10.9 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (0.10.9)
Requirement already satisfied: pylru<1.3,>=1.2 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (1.2.0)
Requirement already satisfied: rsa<5,>=4.0 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (4.0)
Requirement already satisfied: pkginfo<1.6,>=1.5.0.1 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (1.5.0.1)
Requirement already satisfied: requests<3,>=2.22.0 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (2.22.0)
Collecting semantic_version<2.9,>=2.8
Downloading semantic_version-2.8.4-py2.py3-none-any.whl (15 kB)
Requirement already satisfied: psutil<5.7,>=5.6.5 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (5.6.7)
Requirement already satisfied: Click<8,>=7 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (7.0)
Requirement already satisfied: awesome-slugify<1.7,>=1.6.5 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (1.6.5)
Requirement already satisfied: feedparser<5.3,>=5.2.1 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (5.2.1)
Collecting future<0.19,>=0.18.2
Downloading future-0.18.2.tar.gz (829 kB)
Requirement already satisfied: websocket-client<0.57,>=0.56 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (0.56.0)
Requirement already satisfied: wrapt<1.12,>=1.11.2 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (1.11.2)
Requirement already satisfied: emoji<0.6,>=0.5.4 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (0.5.4)
Requirement already satisfied: frozendict<1.3,>=1.2 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (1.2)
Collecting sentry-sdk==0.13.2
Downloading sentry_sdk-0.13.2-py2.py3-none-any.whl (91 kB)
Requirement already satisfied: filetype<2,>=1.0.5 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (1.0.5)
Collecting futures<3.4,>=3.3
Downloading futures-3.3.0-py2-none-any.whl (16 kB)
Requirement already satisfied: monotonic<1.6,>=1.5 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (1.5)
Requirement already satisfied: scandir<1.11,>=1.10 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (1.10.0)
Requirement already satisfied: chainmap<1.1,>=1.0.3 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (1.0.3)
Requirement already satisfied: typing<4,>=3.7.4.1 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from OctoPrint==1.4.0) (3.7.4.1)
Requirement already satisfied: itsdangerous>=0.21 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from flask<0.13,>=0.12->OctoPrint==1.4.0) (1.1.0)
Requirement already satisfied: MarkupSafe in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from Jinja2<2.9,>=2.8.1->OctoPrint==1.4.0) (1.1.1)
Requirement already satisfied: singledispatch in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from tornado==4.5.3->OctoPrint==1.4.0) (3.4.0.3)
Requirement already satisfied: certifi in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from tornado==4.5.3->OctoPrint==1.4.0) (2019.11.28)
Requirement already satisfied: backports-abc>=0.4 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from tornado==4.5.3->OctoPrint==1.4.0) (0.5)
Requirement already satisfied: Babel>=2.3 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from Flask-Babel<0.13,>=0.12->OctoPrint==1.4.0) (2.8.0)
Requirement already satisfied: webassets>=0.11.1 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from Flask-Assets<0.13,>=0.12->OctoPrint==1.4.0) (2.0)
Requirement already satisfied: setuptools>=36 in /home/odroid/OctoPrint/venv/lib/python2.7/site-packages (from markdown<3.2,>=3.1->OctoPrint==1.4.0) (45.0.0)
ERROR: Package 'setuptools' requires a different Python: 2.7.12 not in '>=3.5'
The update did not finish successfully. Please consult <code>octoprint.log</code> and <code>plugin_softwareupdate_console.log</code> for details.

plugin_softwareupdate_console.log only has the following:
[octoprint.log|attachment](upload://sPoHeCOUikRF3IyP3mPHIcTjEDd.log) (94.9 KB) [plugin_pluginmanager_console.log|attachment](upload://bQbgJGQu1c0xkXNuRdMEPNoa4Pf.log) (286 Bytes)

Additional information about your setup (OctoPrint version, OctoPi version, printer, firmware, browser, operating system, ... as much data as possible)
Octoprint version: 1.3.12
OctoPi version: N/A Using ODroid xu4
Printer: Ender 3 (not connected while attempting upgrade)
Operating system: Ubuntu 16.04.6 LTS (using web interface from Windows 10 device - Chromium Edge)

I think I followed this guide to install originally:
http: //www.forum.diigiit.com/viewtopic.php?id=1458
But it was a long while ago that I did this so I can't be 100% sure.
What do?