#!/bin/bash set -euo pipefail SITE_PACKAGES="${1:?usage: extract_wheels.sh }" WHEELS_DIR="${2:?usage: extract_wheels.sh }" mkdir -p "$SITE_PACKAGES" for f in "$WHEELS_DIR"/*; do case "$f" in *.whl) python3 -m zipfile -e "$f" "$SITE_PACKAGES/" ;; *.tar.gz|*.tar.bz2) tmpdir=$(mktemp -d) tar xf "$f" -C "$tmpdir" for pkgdir in "$tmpdir"/*/; do for inner in "$pkgdir"*/; do if [ -f "${inner}__init__.py" ]; then cp -r "$inner" "$SITE_PACKAGES/" fi done find "$pkgdir" -maxdepth 1 -name "*.py" -exec cp {} "$SITE_PACKAGES/" \; done rm -rf "$tmpdir" ;; esac done echo "Extraction done. Contents of $SITE_PACKAGES:" ls "$SITE_PACKAGES"