How to upgrade ERPNext v12 to v13?

My python version installed is Python 2.7.17. I’m facing multiple errors when upgrading to v13 that were related to Python dependencies. Can someone help me? thanks

Version 13:
Python 3.7 or Python 3.8
Node.js 14
MariaDB 10.3+

Version 14:
Python 3.10 or Python 3.11
Node.js 14 or 16
MariaDB 10.6.6+

Version 15/Nightly:
Python 3.10 or Python 3.11
Node.js 18
MariaDB 10.6.6+

Common for all Frappe versions:
Redis 6 (caching and realtime updates)
yarn 1.12+ (js dependency manager)
pip 20+ (py dependency manager)
wkhtmltopdf (version 0.12.5 with patched qt) (for pdf generation)
cron (bench’s scheduled jobs: automated certificate renewal, scheduled backups)
NGINX (proxying multitenant sites in production)

Thanks.

I have one question. Once I install the Python 3.7 or higher, do I have to use virtual environment in order to update the ERPNext?

Please find the link below for upgrade python env.

After doing this steps for the python upgrade, I can now proceed on erpnext v12 to 13? Am I correct?