Skip to main content

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