> ## 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 show

> Show detailed information about installed packages.

`uv pip show` displays detailed information about one or more installed packages, including version, location, dependencies, and metadata.

## Usage

```bash theme={null}
# Show package information
uv pip show requests

# Show multiple packages
uv pip show requests flask numpy

# Show with file list
uv pip show requests --files
```

## Arguments

<ParamField body="package" type="package[]" required>
  Names of packages to display information about.

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

### Display Options

<ParamField body="-f, --files">
  Show the full list of installed files for each package.

  ```bash theme={null}
  uv pip show requests --files
  ```
</ParamField>

### Python Environment

<ParamField body="-p, --python" type="string">
  Python interpreter to search for packages.

  By default, searches in virtual environment or system Python if no venv is found.

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

  Environment: `UV_PYTHON`
</ParamField>

<ParamField body="--system">
  Show packages from system Python, ignoring virtual environments.

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

  Environment: `UV_SYSTEM_PYTHON`
</ParamField>

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

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

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

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

### Validation

<ParamField body="--strict">
  Validate the environment, detecting packages with missing dependencies.

  ```bash theme={null}
  uv pip show requests --strict
  ```
</ParamField>

## Output Format

### Basic Information

```txt theme={null}
Name: requests
Version: 2.31.0
Summary: Python HTTP for Humans.
Home-page: https://requests.readthedocs.io
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache 2.0
Location: /Users/user/.venv/lib/python3.11/site-packages
Requires: certifi, charset-normalizer, idna, urllib3
Required-by: flask, httpx
```

### With Files

With `--files`, also shows installed files:

```txt theme={null}
Name: requests
Version: 2.31.0
...
Files:
  requests/__init__.py
  requests/adapters.py
  requests/api.py
  ...
  requests-2.31.0.dist-info/METADATA
  requests-2.31.0.dist-info/RECORD
  requests-2.31.0.dist-info/WHEEL
```

### Multiple Packages

When showing multiple packages, they're separated by `---`:

```txt theme={null}
Name: requests
Version: 2.31.0
...
---
Name: flask
Version: 3.0.0
...
```

## Displayed Fields

### Package Metadata

* **Name**: Package name
* **Version**: Installed version
* **Summary**: Short description
* **Home-page**: Project website
* **Author**: Package author
* **Author-email**: Author contact
* **License**: License type
* **Location**: Installation directory

### Dependencies

* **Requires**: Direct dependencies
* **Required-by**: Packages that depend on this package

### Installation Info

* **Installer**: Tool used to install (typically `uv`)
* **Editable project location**: For editable installs

## Examples

### Basic Usage

```bash theme={null}
# Show single package
uv pip show requests

# Show multiple packages
uv pip show requests flask numpy

# Show all fields
uv pip show requests --files
```

### Check Dependencies

```bash theme={null}
# See what a package requires
uv pip show requests | grep "Requires:"

# See what depends on a package
uv pip show requests | grep "Required-by:"
```

### Find Package Location

```bash theme={null}
# Get installation directory
uv pip show requests | grep "Location:"

# Or use grep to extract just the path
uv pip show requests | grep "Location:" | cut -d' ' -f2
```

### Inspect Files

```bash theme={null}
# Show all installed files
uv pip show requests --files

# Count installed files
uv pip show requests --files | grep -c "^"

# Find specific file
uv pip show requests --files | grep __init__.py
```

### Specific Environment

```bash theme={null}
# From specific Python
uv pip show requests --python 3.11

# From system Python
uv pip show requests --system

# From target directory
uv pip show requests --target ./libs
```

### Script Usage

```bash theme={null}
# Check if package is installed
if uv pip show requests > /dev/null 2>&1; then
  echo "requests is installed"
fi

# Get version
VERSION=$(uv pip show requests | grep "Version:" | cut -d' ' -f2)
echo "requests version: $VERSION"

# Get location
LOCATION=$(uv pip show requests | grep "Location:" | cut -d' ' -f2)
echo "Installed at: $LOCATION"
```

## Use Cases

### Debug Installation Issues

```bash theme={null}
# Check if package is properly installed
uv pip show mypackage --strict

# Verify installation location
uv pip show mypackage | grep Location

# Check dependencies are met
uv pip show mypackage | grep Requires
```

### Find Import Paths

```bash theme={null}
# Get site-packages location
uv pip show requests | grep Location

# Use in Python scripts
LOCATION=$(uv pip show requests | grep Location | cut -d' ' -f2)
PYTHONPATH="$LOCATION:$PYTHONPATH" python script.py
```

### Audit Dependencies

```bash theme={null}
# Check what depends on a package before removing
uv pip show numpy | grep "Required-by:"

# See full dependency chain
uv pip show flask
uv pip show werkzeug  # Flask dependency
```

### Verify Editable Installs

```bash theme={null}
# Check if package is editable
uv pip show mypackage | grep "Editable project location"

# Get source location for editable package
uv pip show mypackage | grep "Editable project location" | cut -d' ' -f4-
```

### License Compliance

```bash theme={null}
# Extract licenses for all packages
for pkg in $(uv pip list --format freeze | cut -d'=' -f1); do
  echo "$pkg: $(uv pip show $pkg | grep License | cut -d' ' -f2-)"
done
```

### File Inventory

```bash theme={null}
# List all files from a package
uv pip show requests --files | grep -A 9999 "Files:"

# Find package that owns a file
FILE="requests/__init__.py"
for pkg in $(uv pip list --format freeze | cut -d'=' -f1); do
  if uv pip show $pkg --files | grep -q "$FILE"; then
    echo "$FILE is from $pkg"
  fi
done
```

## Differences from pip show

`uv pip show` is largely compatible with `pip show`:

```bash theme={null}
# pip command
pip show requests

# Equivalent uv command
uv pip show requests
```

### Key Differences

1. **Performance**: uv is faster
2. **Output format**: Nearly identical to pip
3. **Validation**: uv adds `--strict` for dependency checking
4. **Installer field**: Shows `uv` instead of `pip`

### Unsupported pip Options

Most pip show options are supported. Notable exceptions:

* Some legacy pip behaviors

## Exit Codes

```bash theme={null}
# Exit code 0: All packages found
uv pip show requests
echo $?  # 0

# Exit code 1: One or more packages not found
uv pip show nonexistent-package
echo $?  # 1

# Use in scripts
if uv pip show mypackage > /dev/null 2>&1; then
  echo "Package is installed"
else
  echo "Package not found"
fi
```

## Related Commands

* [`uv pip list`](/cli/pip-list) - List all installed packages
* [`uv pip freeze`](/cli/pip-freeze) - Output installed packages
* [`uv pip install`](/cli/pip-install) - Install packages
* [`uv pip uninstall`](/cli/pip-uninstall) - Uninstall packages
