Skip to main content
uv pip uninstall removes packages from the active Python environment. It is compatible with pip uninstall but offers faster performance.

Usage

# Uninstall a package
uv pip uninstall requests

# Uninstall multiple packages
uv pip uninstall requests flask numpy

# Uninstall from requirements file
uv pip uninstall -r requirements.txt

# Dry run
uv pip uninstall requests --dry-run

Arguments

package
string[]
required
Names of packages to uninstall.
uv pip uninstall requests
uv pip uninstall requests flask numpy
-r, --requirements
path[]
Uninstall packages listed in requirements files.Supported formats:
  • requirements.txt
  • .py files with inline metadata
  • pylock.toml
  • pyproject.toml, setup.py, setup.cfg
uv pip uninstall -r requirements.txt
uv pip uninstall -r requirements.txt -r dev-requirements.txt

Python Environment

-p, --python
string
Python interpreter from which to uninstall packages.By default, uninstalls from virtual environment. Use with caution for system Python.
uv pip uninstall requests --python 3.11
uv pip uninstall requests --python /path/to/python
Environment: UV_PYTHON
--system
Uninstall from system Python instead of virtual environment.
Use with caution in CI environments only. Can modify system Python installation.
uv pip uninstall requests --system
Environment: UV_SYSTEM_PYTHON
--break-system-packages
Allow uninstallation from externally-managed Python environments.
Intended for CI environments. Use with caution.
Environment: UV_BREAK_SYSTEM_PACKAGES
-t, --target
path
Uninstall packages from a --target directory.
uv pip uninstall requests --target ./libs
--prefix
path
Uninstall packages from a --prefix directory.
uv pip uninstall requests --prefix /opt/myapp

Behavior Options

--dry-run
Show what would be uninstalled without actually removing packages.
uv pip uninstall requests --dry-run
--keyring-provider
string
Keyring provider for authentication (for remote requirements files): disabled, subprocess.Default: disabledEnvironment: UV_KEYRING_PROVIDER

Examples

Basic Uninstallation

# Uninstall single package
uv pip uninstall requests

# Uninstall multiple packages
uv pip uninstall requests flask sqlalchemy

# Uninstall with confirmation
uv pip uninstall requests --dry-run
uv pip uninstall requests

From Requirements File

# Uninstall all packages in file
uv pip uninstall -r requirements.txt

# Uninstall from multiple files
uv pip uninstall -r requirements.txt -r dev-requirements.txt

# Uninstall from pyproject.toml
uv pip uninstall -r pyproject.toml

Specific Environment

# From specific Python
uv pip uninstall requests --python 3.11

# From system Python (caution!)
uv pip uninstall requests --system

# From target directory
uv pip uninstall requests --target ./libs

Dry Run

# Preview uninstallation
uv pip uninstall requests --dry-run

# Check multiple packages
uv pip uninstall -r requirements.txt --dry-run

Use Cases

Remove Unwanted Packages

# Remove a package no longer needed
uv pip uninstall old-dependency

# Remove multiple packages
uv pip uninstall pkg1 pkg2 pkg3

Clean Development Environment

# Remove development dependencies
uv pip uninstall -r dev-requirements.txt

# Keep production dependencies
uv pip uninstall -r dev-requirements.txt --dry-run  # verify first

Fix Broken Installation

# Uninstall and reinstall
uv pip uninstall problematic-package
uv pip install problematic-package

# Or combine
uv pip uninstall problematic-package && uv pip install problematic-package

Downgrade Package

# Uninstall current version
uv pip uninstall numpy

# Install older version
uv pip install "numpy==1.24.0"

Verify Before Uninstall

# Check what depends on package
uv pip show numpy | grep "Required-by:"

# Preview uninstallation
uv pip uninstall numpy --dry-run

# Uninstall if safe
uv pip uninstall numpy

Differences from pip uninstall

uv pip uninstall is largely compatible with pip uninstall:
# pip command
pip uninstall requests

# Equivalent uv command
uv pip uninstall requests

Key Differences

  1. Performance: uv is faster
  2. Confirmation: uv does not prompt for confirmation (use --dry-run first)
  3. Default behavior: uv requires virtual environment by default
  4. Dependency handling: Both only remove specified packages, not their dependencies

No Confirmation Prompt

Unlike pip, uv does not ask for confirmation:
# pip asks "Proceed (Y/n)?"
pip uninstall requests

# uv uninstalls immediately
uv pip uninstall requests

# Use --dry-run to preview
uv pip uninstall requests --dry-run

Migration from pip

# Replace in scripts
pip uninstall -y requests  # -y to skip confirmation
# becomes
uv pip uninstall requests  # no confirmation needed

Handling Dependencies

uv pip uninstall only removes specified packages, not their dependencies:
# Install requests (and its dependencies)
uv pip install requests
# Installs: requests, certifi, charset-normalizer, idna, urllib3

# Uninstall requests
uv pip uninstall requests
# Removes: requests only
# Leaves: certifi, charset-normalizer, idna, urllib3

Remove Package and Dependencies

To remove orphaned dependencies:
# Option 1: Use pip sync with updated requirements
uv pip compile updated-requirements.in -o requirements.txt
uv pip sync requirements.txt  # removes extraneous packages

# Option 2: Manually remove unused packages
uv pip list
uv pip uninstall unused-dep1 unused-dep2

# Option 3: Fresh environment
rm -rf .venv
uv venv
uv pip install -r requirements.txt

What Gets Uninstalled

Regular Packages

# Uninstalls package files and metadata
uv pip uninstall requests
# Removes:
# - /path/to/site-packages/requests/
# - /path/to/site-packages/requests-2.31.0.dist-info/

Editable Packages

# Uninstalls editable package reference
uv pip uninstall mypackage
# Removes:
# - Link/egg-info from site-packages
# Source code remains in original location

Scripts and Entry Points

# Uninstalls console scripts
uv pip uninstall black
# Removes:
# - /path/to/bin/black
# - /path/to/bin/blackd

Exit Codes

# Exit code 0: Success
uv pip uninstall requests
echo $?  # 0

# Exit code 1: Package not found
uv pip uninstall nonexistent-package
echo $?  # 1

# Use in scripts
if uv pip uninstall old-package 2>/dev/null; then
  echo "Successfully uninstalled"
else
  echo "Package not found or error"
fi

Safety Considerations

Check Dependencies First

# Check what depends on package
uv pip show numpy | grep "Required-by:"

# If other packages depend on it, they may break
uv pip check  # after uninstall

Use Dry Run

# Always preview major uninstalls
uv pip uninstall -r requirements.txt --dry-run

# Verify output, then proceed
uv pip uninstall -r requirements.txt

Avoid System Python

# DON'T: Uninstall from system Python
uv pip uninstall requests --system  # dangerous!

# DO: Use virtual environments
uv venv
source .venv/bin/activate
uv pip uninstall requests  # safe

Build docs developers (and LLMs) love