Skip to main content

🛡️ PySBOM

PyPI Python License


Automatically discover Python environments and generate CycloneDX SBOMs at scale — built for security teams.

PySBOM (Python Software Bill of Materials) is a CLI tool that discovers Python environments on servers and generates standardized SBOM files for each of them.

It targets operational infrastructure where multiple venv and conda environments exist across systems and manual tracking becomes impractical.

PySBOM produces SBOMs in the CycloneDX format, an OWASP-supported industry standard for software bill of materials.


✨ Why PySBOM?

Security teams need reliable visibility into what is installed in production and server environments:

  • 🔍 Dependency visibility across systems
  • 📦 Standardized SBOM generation
  • 🔐 Supply chain transparency
  • 📜 License awareness
  • ⚙️ Controlled, repeatable automation

PySBOM focuses on deterministic environment discovery (you define the search scope) and scalable SBOM generation across many environments.


⚙️ How It Works

  1. You provide one or more glob patterns that define where environments may exist.
  2. PySBOM discovers matching venv and conda environments within that scope.
  3. It extracts installed package metadata from each discovered environment.
  4. It generates one CycloneDX SBOM per environment.

This approach ensures predictable, repeatable SBOM generation aligned with your defined infrastructure boundaries.


🔎 How PySBOM Differs from Project-Level SBOM Tools

Project-level tools generate SBOMs for a single application or environment.

PySBOM complements them by automatically discovering Python environments across servers and generating SBOMs at infrastructure scale — helping security teams maintain supply chain visibility across operational systems.


📦 Installation

Install from PyPI:

pip install PySBOM

🚀 Example Usage

Provide glob patterns as positional arguments:

pysbom scan "/opt/*/venv" "/opt/conda/envs/*" "/home/*/miniconda3/envs/*"

Recursive discovery with **

Use ** to match at arbitrary nesting depths (useful when layouts vary between hosts):

pysbom scan "/srv/**/venv" "/home/**/miniconda3/envs/*"

Pattern tips:

  • Prefer a small set of known roots (e.g. /opt, /srv, /home) to keep discovery controlled.
  • Quote patterns to prevent your shell from expanding them before PySBOM receives them.
  • Use ** when you expect inconsistent nesting, but keep the root tight (e.g. /srv/**/venv, not /**/venv).

⚠️ Project Status

PySBOM is under active development and not yet production-ready. Interfaces and behavior may change until the first stable release.


📄 License

PySBOM is distributed under the GNU General Public License v3.0 (GPL-3.0-or-later). See the LICENSE file for details.

Metadata

Release files for PySBOM 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for PySBOM 0.1.0
File Size Uploaded
pysbom-0.1.0.tar.gz 18.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for PySBOM 0.1.0
File Interpreter ABI Platform
pysbom-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 37.9 kB

Release files / pysbom-0.1.0.tar.gz

Download URL pysbom-0.1.0.tar.gz
Size 18.3 kB
Tags Source
SHA-256 checksum
How to use checksums
70d177a74b405887b21ca7841e71e027faf7b7630f6c811ecf8df3dd04fb4cbe
BLAKE2b-256 checksum
How to use checksums
a7fe08ba6cae20a41020110325c6466ee5caa3fbed99a1de2eaf9116d82ad738
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / pysbom-0.1.0-py3-none-any.whl

Download URL pysbom-0.1.0-py3-none-any.whl
Size 19.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6665f75fe1056b2cc0d4cb2aaa932859549fd40dbbcfbbfa1ebe0296ef2d7c22
BLAKE2b-256 checksum
How to use checksums
d6b402607578f88b94e00fa23f1535bc348ca8945d0c6385f9e237fd483e61c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page