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.2.0.tar.gz (16.6 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.2.0-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for envscan-0.2.0.tar.gz
Algorithm Hash digest
SHA256 0c1108d7dc4ebf2ea6875d61c2b07a4314ad29dfe43d79ee13ace3e423292fce
MD5 f7753354732b2329fd51791118d8e656
BLAKE2b-256 82b01a74394d4fe196f5c75b36a8619e296d9fdc7be0350e9dc601ae7b67a79b

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for envscan-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2c9898200fa7c5ebc0ed2b95811852448464223c045bb30334935dc036503192
MD5 ccf2b3218b51c3bd2ac3a39285241968
BLAKE2b-256 1b9c8da912ea70faba416d8327998f240b79e1a5245461976fb75ff83b42690f

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