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

Usage

# 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

package
package[]
required
Names of packages to display information about.
uv pip show requests
uv pip show requests flask numpy

Display Options

-f, --files
Show the full list of installed files for each package.
uv pip show requests --files

Python Environment

-p, --python
string
Python interpreter to search for packages.By default, searches in virtual environment or system Python if no venv is found.
uv pip show requests --python 3.11
uv pip show requests --python /path/to/python
Environment: UV_PYTHON
--system
Show packages from system Python, ignoring virtual environments.
uv pip show requests --system
Environment: UV_SYSTEM_PYTHON
-t, --target
path
Show packages from a --target directory.
uv pip show requests --target ./libs
--prefix
path
Show packages from a --prefix directory.
uv pip show requests --prefix /opt/myapp

Validation

--strict
Validate the environment, detecting packages with missing dependencies.
uv pip show requests --strict

Output Format

Basic Information

Name: requests
Version: 2.31.0
Summary: Python HTTP for Humans.
Home-page: https://requests.readthedocs.io
Author: Kenneth Reitz
Author-email: [email protected]
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:
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 ---:
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

# 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

# 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

# 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

# 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

# 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

# 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

# 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

# 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

# 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

# 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

# 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

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

# 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

Build docs developers (and LLMs) love