Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.
Run the same executable your project uses. The quickest check is python --version (or python -V). On systems where the command is named python3, use python3 --version. Windows installations with several runtimes can also use py -V and py list. Python documents -V/--version as printing the version number and exiting, while -VV prints additional build information.
The command reports only the interpreter selected by that command. A virtual environment, launcher configuration, or multiple installations can therefore produce a different result from another terminal command.
The commands to use on each operating system
| System or situation | Command | What it tells you |
|---|---|---|
| Windows default runtime | python --version or python -V |
Version of the interpreter selected by python |
| Windows runtime launcher | py -V |
Version selected by the Windows py launcher |
| Windows installed-runtime inventory | py list |
Runtimes listed by the current Python Install Manager |
| Linux | python3 --version or python3 -V |
Version of the executable named python3 |
| macOS | python3 --version or python3 -V |
Version of the executable named python3 |
| More build detail | python -VV (or the equivalent executable) |
Extended version and build information |
Use the exact command that starts your application. If a project is launched with python3, checking python may describe a different installation.
Reference: Python command-line and environment documentation.
#1 Best Overall
Check Python on Windows
1. Open a terminal
Start Command Prompt, PowerShell, or another Windows terminal.
2. Check the default command
Run:
python --version
You can use the shorter equivalent:
python -V
A successful response looks like a version number such as Python 3.x.y. The exact version depends on what is installed and selected on that computer.
3. Check the Windows launcher when you use it
If your workflow uses the Windows launcher, run:
py -V
Current Windows guidance describes python as the normal command for launching the default runtime and py as useful when selecting or managing multiple runtimes. Read the current Using Python on Windows documentation for the behavior of the Install Manager and launcher on your installation.
4. List installed runtimes
To see the runtimes recognized by the current Python Install Manager, run:
py list
This is an inventory view; it is not the same as asking one executable for its version. The list can contain runtimes that are not the one your current project selects.
Rank #2
Do not rely on old launcher examples without checking your installation
The current Windows documentation says the legacy Python launcher documentation is deprecated since Python 3.14 and has been superseded by the Python Install Manager documentation. Older guides may show py --list; do not assume that example is current for the launcher you have installed. Prefer the commands documented for your current Install Manager.
Check Python on Linux
Use the executable your distribution exposes
Open a terminal and run:
python3 --version
or:
python3 -V
Some environments also provide a python command. If your project starts with that command, check it directly:
Recommended Free Tools
python --version
The -V and --version options are interpreter options, so the result always belongs to the executable name you typed.
Check Python on macOS
Use the project’s command
In Terminal, the commonly used executable is python3:
python3 --version
The short form is:
python3 -V
If a project, virtual environment, or tool invokes another command, run the version check against that same command. Checking a different executable can report a different interpreter.
Why the version can change between terminals
A command identifies one selected interpreter
python --version does not enumerate every Python installation. It reports the interpreter selected by python in that shell. The same is true of python3 and py.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsVirtual environments take precedence for a project
An active virtual environment can change which interpreter is selected. For a reliable diagnosis, activate the environment used by the project and run the same command used to start the program. On Windows, compare that result with the runtimes shown by py list when you need an inventory.
Compare four things when debugging
- The exact executable or launcher command you invoked.
- Whether a virtual environment is active.
- The version printed by that command.
- Whether the project is started with that same command and environment.
This comparison explains most “Python is the wrong version” reports without changing any files.
Check the interpreter from inside a script
When the question is “which Python is running this program?”, execute the program with the interpreter in question and print its runtime information:
python -c "import sys; print(sys.version)"
Replace python with python3 or another launcher when that is how the program is started. The value from sys.version is useful when you need the interpreter’s detailed runtime string rather than only the short version displayed by -V.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →For a concise command-line answer, use -V. For additional build details, use -VV:
python -VV
The option is available through the Python command-line interface documented by the Python Software Foundation.
Troubleshooting common results
“python” or “python3” is not recognized
The shell cannot find an executable with that name in the current configuration. Try the executable name appropriate to your platform: python3 on many Linux and macOS systems, or python and py on Windows. If none works, consult the installation and command configuration for that machine; a version command cannot report an interpreter the shell cannot select.
python and python3 show different versions
They are separate command names and may select different installations. Use the one your project actually invokes, then check whether a virtual environment is active. Do not combine the results as though they describe one interpreter.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
py -V does not match python --version on Windows
The commands can select different runtimes. Treat py -V as the launcher’s result and python --version as the result for the python command. Use py list for the current Install Manager’s runtime inventory, then run the project with the command it is configured to use.
Best Value
The terminal version differs from the application’s version
Run the application’s own command with the inline check:
python -c "import sys; print(sys.version)"
Use the same launcher and activated environment as the application. This avoids diagnosing one interpreter while the application runs another.
An older tutorial recommends py --list
Windows documentation for the legacy launcher is deprecated since Python 3.14. Use the current Python Install Manager guidance and its py list command where that manager is installed.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →A repeatable version-check procedure
- Open the same shell used to run the project.
- Activate the project’s virtual environment, if it has one.
- Run the project’s exact command with
--versionor-V. - If you need build details, repeat with
-VV. - For Windows multi-runtime diagnosis, run
py list. - If the result still seems wrong, run the inline
sys.versioncheck through that same command.
Or skip the browser setup
If you also need clean screenshots of documentation pages, demos, or release notes, ScreenshotNeo can return an image or PDF through one request instead of configuring a browser. Its consent step accepts cookie banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each step can be disabled. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and the response identifies the page verdict and billing status in X-Page-Verdict and X-Billed headers. It also provides an MCP server for Claude, Cursor, and other MCP clients with take_screenshot, get_page_info, and capture_pdf tools.
See the ScreenshotNeo API documentation for all parameters. A direct cURL request is:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
The same request in Python is:
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
And in Node.js:
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
ScreenshotNeo includes full-page and element capture, device presets, retina scaling, PDF controls, custom CSS and JavaScript, waits, request blocking, headers, cookies, user-agent, authorization, timezone, geolocation, transparent backgrounds, resizing, configurable caching, signed links, asynchronous jobs, webhooks, bulk capture for up to 100 URLs per call, a usage API, and an OpenAPI specification. Its parameter names are compatible with those used by other screenshot APIs.
| Plan | Allowance | Price |
|---|---|---|
| Free | 1,000 screenshots/month | $0, no card |
| Starter | 3,000 screenshots | $5 |
| Growth | 15,000 screenshots | $15 |
| Pro | 60,000 screenshots | $39 |
| Scale | 250,000 screenshots | $99 |
| Business | 1,000,000 screenshots | $249 |
Every feature is included on every plan, and yearly billing provides two months free. If that capture workflow is useful, sign up for ScreenshotNeo to get 1,000 screenshots a month free with no card; paid plans start at $5 for 3,000 screenshots.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

