Why Most Python Setup Guides Are Wrong From The Start
Most people start by downloading Python and immediately getting stuck on PATH configuration. I've been watching this happen for years. The whole "download and install" thing sounds straightforward until you open a terminal and type python and get nothing. That's because Python isn't automatically added to your system PATH unless you check that box during installation. Skip it, and you'll spend two hours Googling before realizing the problem was a checkbox. The cheat sheet I'm about to lay out isn't decorative. It's organized around what actually goes wrong when you set up a Python environment for the first time, and it prioritizes the decisions that matter. Everything else is noise. Go to python.org and download the latest 3.x release. Don't grab Python 2 from some archive site thinking it'll be easier. Don't grab a pre-release version either. There's a reason stable releases exist. When I installed Python for the first production project, I grabbed a beta version because I was impatient. The asyncio module changed its API three times in six weeks and I lost two days tracking down compatibility issues. Just use the stable build.
During installation, there's a checkbox that says "Add Python to PATH." Check it. If you don't check it, you're going to have to manually add Python to your system PATH later, which involves navigating through Windows Environment Variables or editing your shell profile on macOS and Linux. Both are fine if you know what you're doing. Most people reading this don't want to deal with that right now.
Verify The Installation
Open your terminal or Command Prompt and type: python --version If it prints a version number like Python 3.12.3, you're good. If it says command not found or isn't recognized, the PATH didn't get set correctly. Close and reopen your terminal. Sometimes the environment variables don't load in the current session until you start a new one.
Get the Full Details

On Windows, also run py --version. The py launcher is a separate piece of software that ships with Python on Windows and helps you pick which version to run. It's useful once you have multiple Python installations, but don't confuse it with the base Python binary itself.
Virtual Environments Are Not Optional
Here's something every guide gets wrong. They tell you to create virtual environments but then show you outdated tools. The standard today is venv, which ships with Python. You don't need to install anything extra. Create one by navigating to your project folder and running: python -m venv myproject
Then activate it. On Windows: myproject\Scripts\activate. On macOS or Linux: source myproject/bin/activate. Your prompt will change to show the environment name in parentheses. When you run pip from here, it only installs packages into that environment. Not globally. Not somewhere else. In that environment only. I once worked on a project where a developer had installed packages globally and the project depended on numpy 1.19 while the system Python had 1.24. Every test passed locally and failed on CI. Took three days to trace the version mismatch because nothing warned them about it. Virtual environments prevent this entire class of problem.

Package Management
pip is the package manager. It comes with Python. Use it inside your activated virtual environment. The basic commands are simple: pip install package-name to add something. pip freeze > requirements.txt to save your dependency list. pip install -r requirements.txt to replicate the setup on another machine. The counter-intuitive part most beginners miss: pin your dependencies. Don't just write pandas in requirements.txt. Write pandas==2.1.4. Without pinned versions, pip will resolve to whatever the latest version is at installation time, and that version might have breaking changes from what you tested against. A project that runs fine on your machine will fail on someone else's because of an un-pinned dependency upgrade. This happens constantly in production.
The Common Pitfall: Mixing Pip And Package Managers
On macOS, Homebrew sometimes installs its own Python that isn't connected to the python.org installer. On Windows, Anaconda and Miniconda can shadow your system Python. If you have multiple Python installations, which one is python actually pointing to? Run which python on macOS/Linux or where python on Windows to find out. If the path looks wrong, remove the conflicting installation or adjust your PATH order. PyCharm, VS Code, or the built-in IDLE. I've used all three. PyCharm is the most capable but uses a lot of memory. VS Code is lightweight and the Python extension is solid for most workflows. IDLE is essentially useless for real work but comes pre-installed so you can verify Python is working without installing anything else. Whatever you choose, make sure the IDE is pointed at the correct interpreter in your virtual environment, not the system Python. In VS Code you do this with the Python extension's interpreter selector. In PyCharm you set it in project settings. If you don't do this, your IDE will install packages into the wrong environment and your imports will fail.
What This Cheat Sheet Can't Fix
No amount of setup documentation prevents you from making bad architectural decisions later. A virtual environment won't save you from a spaghetti codebase. Correct dependency pinning won't help if your code has circular imports. The setup process is mechanical. The skill is in what you build after. Also, the cheat sheet assumes you have administrative access to your machine and internet connectivity. If you're on a restricted work machine or behind a corporate proxy, pip installs will fail with SSL errors. You'll need to configure pip's proxy settings or get your IT department to whitelist PyPI. That's a separate problem entirely. Here's the complete reference as a quick lookup table:

Check Python version: python --version or py --version Create virtual environment: python -m venv env_name Activate on Windows: env_name\Scripts\activate
Activate on macOS/Linux: source env_name/bin/activate Install a package: pip install package_name Pinned install: pip install package_name==1.2.3
Export dependencies: pip freeze > requirements.txt Install from requirements: pip install -r requirements.txt Deactivate environment: deactivate

Find Python location: which python (macOS/Linux) or where python (Windows) Upgrade pip: python -m pip install --upgrade pip That's the whole thing. There isn't more to add unless you're dealing with GPU compute, Jupyter notebooks, or C extension compilation, and those are separate topics that would require different tooling anyway.