Skip to main content

Scan directories to find Python virtual environments

Project description

envscan — CLI to discover Python environments

envscan is a small, open-source command-line tool that scans a directory tree and reports local Python environments (venv/virtualenv, conda envs, pipenv/poetry markers, pyenv markers).

Install

# From PyPI (after release)
pip install envscan

# From source (development)
python -m pip install -e .

Quick start

  • Scan the current directory (text output):
envscan
  • Scan a specific directory and print JSON:
envscan --path ./project --format json
  • Probe detected environments to get Python version (optional and time-limited):
envscan --probe --verbose

Command summary

  • -p, --path PATH : Path to scan (default .)
  • -d, --depth INT : Max recursion depth (default 3)
  • -f, --format {text,json} : Output format (default text)
  • --include-hidden : Include hidden directories and files
  • --follow-symlinks : Follow symbolic links
  • --probe : Probe discovered environments to get Python version (optional, time-limited)
  • --json-file PATH : Write JSON output to the given file
  • -v, --verbose : Verbose output (shows probe diagnostic logs)

Notes

  • By default envscan uses conservative file-marker heuristics (e.g., presence of pyvenv.cfg, conda-meta, Pipfile, .python-version) and does not execute any discovered interpreters. Use --probe to request a safe, short, time-limited interpreter probe when available.
  • The optional Streamlit visualization from the original project is preserved as a web extra (installable via pip install envscan[web]) and can be run with streamlit run app.py in the repository; however the primary focus of this package is the envscan CLI.

Contributing

Contributions welcome — open a PR with tests.

License

MIT


Extending Functionality

To add more features:

  1. File type categorization: Extend the get_file_type_group function in directory_scanner.py
  2. Additional statistics: Modify the calculate_directory_stats function in app.py
  3. UI improvements: Add more Streamlit components in app.py

License

This project is open-source and available under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

envscan-0.1.8.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

envscan-0.1.8-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file envscan-0.1.8.tar.gz.

File metadata

  • Download URL: envscan-0.1.8.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for envscan-0.1.8.tar.gz
Algorithm Hash digest
SHA256 9040c68683e1dcd27d99ee3370ec5ac2fd93da4ead42d36c8f387331231bc5b6
MD5 00a7027de8f8d350d455d8fe1bb40240
BLAKE2b-256 b8d2c26d7507267ee94989eeed1a95ccd678059e92a255725412a546323befc2

See more details on using hashes here.

File details

Details for the file envscan-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: envscan-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for envscan-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 e26333f9d0c132d49815c30ec6de355d8c294bb579a1bcfe97ecc9957c9e0bf2
MD5 ce7bc8a0868318749e9a938acfb5e7dc
BLAKE2b-256 8a901efafab0fb6a4ee2cd8b29e569be5de2f0ce4eaa0287de3844bd0d68dbfc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page