Three Pythons you'll encounter
Before you install anything, the single most useful thing to know about Python on a developer machine is that you'll typically end up with three different Pythons, and most "pip can't find that package" / "but I installed it!" headaches come from confusing them:
- System Python — the one your OS ships with (macOS has one, most Linux distros have one). Don't touch it. Don't install packages into it. The OS itself uses it; breaking it breaks the OS.
- User Python — the one you install yourself, globally available to your user account. This is what most "install Python" tutorials give you, and it's what you'll use as the base for projects.
- Project Python (virtualenv) — a per-project copy that lives inside the project directory. Activated when you "enter" the project, deactivated when you leave. Projects shouldn't share dependencies; this is how you keep them isolated.
We'll spend most of the quest in (3). Lesson 7 of this track goes into virtualenvs in detail. For now, just know they exist — and that the question "which python is my terminal calling?" is one you'll answer constantly.
Pick your path — five install methods compared
For (2), the User Python, you have options. There's no single "right" answer — pick based on what kind of work you'll do.
| Method | Best for | Caveats |
|---|---|---|
| python.org installer | Beginners on any OS — works everywhere, no extras to learn | Manual upgrade. One Python at a time. |
| Homebrew (macOS) | macOS devs already using Homebrew for other tools | Path moves between brew updates; can confuse python3 resolution. |
| pyenv | Devs who need multiple Python versions at once | Compiles from source on first install — slow. |
| uv | Modern projects, fast builds, the cwkPippa choice | Newer tool — some teams haven't adopted yet. |
| conda / miniconda | Data science / scientific Python (NumPy, pandas, etc.) | Different worldview from pip; mixing conda and pip in one env causes pain. |
For this quest, uv is what we recommend if you don't already have a Python install you're comfortable with. It's fast, modern, handles version management AND virtualenvs in one tool, and it's what cwkPippa itself uses. Pippa Quest goes deeper into uv in its Backend track.
Verifying the install
Once installed, open a fresh terminal (important — environment variables refresh on new shells). Three commands tell you what you have.
If which python points to a system path like /usr/bin/python, you're calling system Python. If it points to your install location (Homebrew → /opt/homebrew/bin/python3; pyenv → ~/.pyenv/shims/python; uv → ~/.local/share/uv/python/...), you're good.
The first REPL session
The REPL — Read, Eval, Print, Loop — is Python's interactive prompt. Type code, see result, type more code. Run python with no arguments and you'll see something like Python 3.13.x (main, ...) [...] on darwin followed by >>>. That >>> means it's waiting for input.
Run the three code blocks from lesson 1 here, line by line. You'll see Python execute each statement immediately and show you the result of each expression. Notice how print(type(x)) shows the actual class — Python isn't lying when we say "the value carries the type."
Where did your Python go?
Three things are useful to know about where Python actually lives once it's installed:
sys.executable— the absolute path to the Python interpreter binary that's currently running.sys.version— the full version string, including build info.sys.path— the list of directories Python searches for modules. When youimport foo, Python looks here, in order.
This matters more than it seems. The "I installed package X but Python can't find it" problem is almost always a mismatch between which Python you ran pip with and which Python is now executing your script. sys.executable tells you which Python you're talking to right now.
The python vs python3 split
Python 2 was officially retired in 2020, but its ghost still haunts terminal commands. On many systems, python still points to Python 2 (or to nothing at all), and python3 points to the modern interpreter. On other systems, both point to Python 3, or only python exists.
python and python3 may be different binaries. Use python3 explicitly if there's any chance of ambiguity. uv and pyenv normalize this; system Python rarely does.
Windows specifics
Windows has its own quirk — the Python Launcher for Windows (the py command). It ships with the python.org installer and lets you switch versions easily — py -3.13 launches 3.13, py -3.11 launches 3.11. Most Windows tutorials use py instead of python.
Alternatively — WSL (Windows Subsystem for Linux) gives you a real Linux environment inside Windows where Python behaves exactly like it does on macOS/Linux. If you're going to do serious dev work on Windows, WSL is worth the one-time setup.
Bottom line
Install one of the methods above, open a fresh terminal, run python --version, and confirm you see Python 3.12 or higher. Then jump into the REPL and replay lesson 1's three code blocks for real.
which python, sys.executable, python --version. Don't guess. Don't assume. The Python you think you're running and the Python actually running are sometimes different — and asking the system to tell you, instead of guessing, is the Pythonic move.
피파야 이건 강의 초초초초반인데, 설명이 좀 어렵다. 다른 ai 에 돌려서 이해는 했으나,, ai 없었으면 나 이미 여기서 포기했을거 같아 ;;. 좀 더 풀어서 설명을 해주면 좋을거 같아.