> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/astral-sh/uv/llms.txt
> Use this file to discover all available pages before exploring further.

# uv pip uninstall

> Uninstall packages from a Python environment.

`uv pip uninstall` removes packages from the active Python environment. It is compatible with `pip uninstall` but offers faster performance.

## Usage

```bash theme={null}
# 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

<ParamField body="package" type="string[]" required>
  Names of packages to uninstall.

  ```bash theme={null}
  uv pip uninstall requests
  uv pip uninstall requests flask numpy
  ```
</ParamField>

<ParamField body="-r, --requirements" type="path[]">
  Uninstall packages listed in requirements files.

  Supported formats:

  * `requirements.txt`
  * `.py` files with inline metadata
  * `pylock.toml`
  * `pyproject.toml`, `setup.py`, `setup.cfg`

  ```bash theme={null}
  uv pip uninstall -r requirements.txt
  uv pip uninstall -r requirements.txt -r dev-requirements.txt
  ```
</ParamField>

### Python Environment

<ParamField body="-p, --python" type="string">
  Python interpreter from which to uninstall packages.

  By default, uninstalls from virtual environment. Use with caution for system Python.

  ```bash theme={null}
  uv pip uninstall requests --python 3.11
  uv pip uninstall requests --python /path/to/python
  ```

  Environment: `UV_PYTHON`
</ParamField>

<ParamField body="--system">
  Uninstall from system Python instead of virtual environment.

  <Warning>
    Use with caution in CI environments only. Can modify system Python installation.
  </Warning>

  ```bash theme={null}
  uv pip uninstall requests --system
  ```

  Environment: `UV_SYSTEM_PYTHON`
</ParamField>

<ParamField body="--break-system-packages">
  Allow uninstallation from externally-managed Python environments.

  <Warning>
    Intended for CI environments. Use with caution.
  </Warning>

  Environment: `UV_BREAK_SYSTEM_PACKAGES`
</ParamField>

<ParamField body="-t, --target" type="path">
  Uninstall packages from a `--target` directory.

  ```bash theme={null}
  uv pip uninstall requests --target ./libs
  ```
</ParamField>

<ParamField body="--prefix" type="path">
  Uninstall packages from a `--prefix` directory.

  ```bash theme={null}
  uv pip uninstall requests --prefix /opt/myapp
  ```
</ParamField>

### Behavior Options

<ParamField body="--dry-run">
  Show what would be uninstalled without actually removing packages.

  ```bash theme={null}
  uv pip uninstall requests --dry-run
  ```
</ParamField>

<ParamField body="--keyring-provider" type="string">
  Keyring provider for authentication (for remote requirements files): `disabled`, `subprocess`.

  Default: `disabled`

  Environment: `UV_KEYRING_PROVIDER`
</ParamField>

## Examples

### Basic Uninstallation

```bash theme={null}
# 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

```bash theme={null}
# 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

```bash theme={null}
# 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

```bash theme={null}
# Preview uninstallation
uv pip uninstall requests --dry-run

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

## Use Cases

### Remove Unwanted Packages

```bash theme={null}
# Remove a package no longer needed
uv pip uninstall old-dependency

# Remove multiple packages
uv pip uninstall pkg1 pkg2 pkg3
```

### Clean Development Environment

```bash theme={null}
# 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

```bash theme={null}
# 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

```bash theme={null}
# Uninstall current version
uv pip uninstall numpy

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

### Verify Before Uninstall

```bash theme={null}
# 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`:

```bash theme={null}
# 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:

```bash theme={null}
# 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

```bash theme={null}
# 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:

```bash theme={null}
# 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:

```bash theme={null}
# 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

```bash theme={null}
# 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

```bash theme={null}
# 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

```bash theme={null}
# Uninstalls console scripts
uv pip uninstall black
# Removes:
# - /path/to/bin/black
# - /path/to/bin/blackd
```

## Exit Codes

```bash theme={null}
# 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

```bash theme={null}
# 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

```bash theme={null}
# 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

```bash theme={null}
# 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
```

## Related Commands

* [`uv pip install`](/cli/pip-install) - Install packages
* [`uv pip sync`](/cli/pip-sync) - Sync environment (removes extraneous packages)
* [`uv pip list`](/cli/pip-list) - List installed packages
* [`uv pip show`](/cli/pip-show) - Show package details
* [`uv pip freeze`](/cli/pip-freeze) - Output installed packages
