Urlwatch Command Not Found After Installing with pip: Fix
If `urlwatch` is missing after a pip install, check that pip and your shell use the same Python environment, then find and add the right scripts directory to PATH.
If your shell says urlwatch: command not found after installing with pip, the usual issue is that the command script is outside your shell’s PATH, or pip installed urlwatch into a different Python environment from the one you are using. Check the active Python and pip first, install into the intended environment, then verify the command with urlwatch --version.
urlwatch 2.29 requires Python 3.8 or newer. Its installation guide recommends python -m pip install --upgrade urlwatch and verifies the installation with urlwatch --version. urlwatch installation documentation · urlwatch dependencies
1. Check which Python and pip your shell is using
Run these commands in the same terminal where urlwatch fails. They show the Python version and the pip installation associated with that interpreter.
python --version
python -m pip --version
If your system uses python3, run the matching commands instead:
python3 --version
python3 -m pip --version
On Windows, the Python launcher is commonly used:
py --version
py -m pip --version
Look at the paths printed by pip. They help identify which Python installation owns the package. The command python -m pip runs pip under the Python named in that command; using a different Python command to install and run can target different environments. pip User Guide
2. Install urlwatch with the intended interpreter
Choose the command that matches the interpreter and environment you intend to use. Avoid running a bare pip install if you are unsure which Python that pip belongs to.
Linux and macOS
python3 -m pip install --upgrade urlwatch
If python3 is the intended interpreter but only python is configured for it, this equivalent form is also valid:
python -m pip install --upgrade urlwatch
Windows
py -m pip install --upgrade urlwatch
If you use a specific Python version through the Windows launcher, select it explicitly, for example py -3.11 -m pip install --upgrade urlwatch. Replace the version with one installed on your machine.
Virtual environments
If urlwatch is intended to live in a virtual environment, activate that environment first, then install and run it from the same activated shell. For example:
# macOS or Linux; from the project directory
. .venv/bin/activate
python -m pip install --upgrade urlwatch
urlwatch --version
# Windows PowerShell; from the project directory
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade urlwatch
urlwatch --version
Activation changes which interpreter and scripts directory the shell finds. A package installed into a virtual environment is not automatically available in another environment or in an unrelated global shell.
3. Verify the command and locate its script
Try the documented verification command:
urlwatch --version
If the shell still cannot find it, check whether Python can locate the package and where the active interpreter puts scripts.
Linux and macOS
python3 -m pip show urlwatch
python3 -m site --user-base
If you installed with --user, the user-level command directory is typically the reported user base followed by /bin. The exact location depends on the Python distribution and platform. The Python Packaging User Guide explains that --user installs command scripts in a user binary directory that may not already be on PATH. Python Packaging User Guide: Installing Packages
Windows
py -m pip show urlwatch
py -m site --user-site
For a user install, the packaging guide’s procedure is to take the reported user site path and replace the final site-packages component with Scripts. Add that Scripts directory to your user PATH if it is missing. The exact path depends on which Python installation and version you selected.
4. Add the correct scripts directory to PATH
Only do this after identifying the directory for the same Python environment into which urlwatch was installed. Do not guess a Python version or copy a path from another machine.
Linux and macOS shells
For a --user installation, append /bin to the user base returned by python3 -m site --user-base. Add that full directory to your shell startup file. For example, if the command reports /home/alex/.local, the scripts directory would be /home/alex/.local/bin. Then, for a typical bash or zsh setup, add a line like this to ~/.bashrc or ~/.zshrc, replacing the example path with your own:
export PATH="$HOME/.local/bin:$PATH"
Reload the relevant shell configuration or open a new terminal, then check command discovery:
command -v urlwatch
urlwatch --version
Windows
Open the environment variable settings for your user account and add the identified Python Scripts directory to the user Path. Open a new terminal after changing it; existing terminals may retain the old environment. Then run:
where.exe urlwatch
urlwatch --version
A user install has no effect inside a virtual environment. If you need the tool in a virtual environment, activate that environment and install it there instead of relying on the user scripts directory. Packaging guide: user installs
5. If pip itself is missing
If the error says that Python cannot find the pip module, handle that separately from the missing urlwatch command. Python’s pip installation guide documents ensurepip as an option:
python -m ensurepip --upgrade
Use the matching interpreter command, such as python3 or py, if that is the interpreter you intend to use. This installs pip for that Python environment; it does not by itself fix a mismatch between the urlwatch scripts directory and the shell’s PATH. pip installation guide
6. Common errors and fixes
| Symptom | Likely cause | What to do |
|---|---|---|
urlwatch: command not found or “not recognized” |
The scripts directory is not on PATH, or the install went to another Python. |
Compare python -m pip --version with the active interpreter; install with that interpreter and inspect the appropriate scripts directory. |
pip show urlwatch finds nothing |
The bare pip command may belong to another Python, or installation did not complete. |
Use python -m pip show urlwatch with the intended Python, then install with the same interpreter if needed. |
| It works in one terminal but not another | The terminals may load different shell configuration, activate different environments, or inherit different PATH values. | Compare the active Python and PATH in both terminals. Activate the intended environment consistently. |
| It works after activation, but not outside the environment | The package was installed in a virtual environment. | Activate that environment whenever you run urlwatch, or install it in the separate environment where you need it. |
| PATH change appears to have no effect | The directory may be wrong, or the current terminal has not loaded the updated PATH. | Recheck the interpreter-specific scripts location and start a new terminal. Use command -v urlwatch or where.exe urlwatch to inspect discovery. |
| Python version is older than 3.8 | The interpreter does not meet urlwatch 2.29’s documented requirement. | Install or select Python 3.8 or newer, then install urlwatch with that interpreter. |
7. Practical notes for repeatable setups
- Prefer explicit interpreter commands.
python -m pip,python3 -m pip, andpy -m pipmake the relationship between installation and interpreter visible. - Keep project tools in their intended environment. For a project virtual environment, activate it before installation and execution so the command resolves from the same environment.
- Keep PATH changes narrow. Add the particular user or environment scripts directory you confirmed, rather than replacing your PATH or adding an unverified directory.
- Capture the diagnostic details when asking for help. Include your operating system and shell, whether a virtual environment is active, the install command, its output, and the results of
python --versionandpython -m pip --version.
The title alone does not establish one universal cause. The operating system, shell, Python distribution, install scope, active environment, and pip output determine the right path fix.
Or skip the browser setup
For a task that needs a rendered website image rather than the urlwatch command, ScreenshotNeo provides a website screenshot API. One GET request can return a PNG, JPEG, WebP, or PDF. See the ScreenshotNeo API documentation for parameters.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
Python:
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)
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 removes cookie banners, newsletter popups, and chat widgets before capture; bot checks, blank pages, and failed loads are never billed. Its MCP server lets AI agents take screenshots. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000. Create a free account and get 1,000 screenshots a month with no card.
FAQ
Does installing urlwatch with pip automatically make the command available?
Only if the generated scripts directory is discoverable through the shell’s PATH, and you are using the environment where it was installed.
Should I use pip or python -m pip?
Use python -m pip with the intended interpreter to make it clear which Python receives the package. On Windows, py -m pip is a common equivalent.
Can a user install fix a virtual environment?
No. A user-level install does not make the command available inside a virtual environment. Install urlwatch in the environment where you plan to invoke it.
What information should I provide if these steps do not work?
Share your OS and shell, active environment status, exact install command and output, Python version, pip version/path, and the output of the relevant command lookup (command -v urlwatch or where.exe urlwatch).


