Here’s a concrete step-by-step for Windows Server + npm + external mode Python runner:
**Step 1 - Install Python 3**
- Download from Python Releases for Windows | Python.org (3.11 or 3.12 recommended)
- During install, check “Add Python to PATH”
- After install, open a new Command Prompt and verify: `python --version`
**Step 2 - Install the n8n task runner**
```
npm install -g @n8n/task-runner
```
**Step 3 - Stop your current n8n process** (Ctrl+C, or stop the Windows service/pm2 process)
**Step 4 - Set env vars and restart n8n in external mode**
In Command Prompt (run as Administrator):
```
set N8N_RUNNERS_MODE=external
set N8N_RUNNERS_AUTH_TOKEN=my-secret-token-here
set N8N_RUNNERS_TASK_BROKER_URI=localhost:5679
n8n start
```
(Replace `my-secret-token-here` with any random string - it just needs to match in both commands.)
**Step 5 - Start the task runner in a second terminal window**
```
n8n-task-runner start --n8n-uri=http://localhost:5679 --auth-token=my-secret-token-here
```
Use the exact same token in both Step 4 and Step 5.
**Step 6 - Test it**
Create a Code node set to Python and run it. The Python 3 is missing error should be gone.
**Tip for production:** To persist these env vars across reboots, set them via System Properties → Environment Variables (Windows GUI), or use a .env file with pm2 if that is how you are running n8n.