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.7.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.7-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: envscan-0.1.7.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.7.tar.gz
Algorithm Hash digest
SHA256 f08be73828758688470ffa3660aace9dcb71967bba9f9162d13b0147aa9cb9e6
MD5 6ebd1121808192d607e7f10d6580dfdb
BLAKE2b-256 3629606e02308ddb1f97d9477af243bcbda02a6c18812457253c751c2b5cbba7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: envscan-0.1.7-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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 c0dc908f66a2fc5dbace3bb538cae7abdfd470108b8f8c2588ffbbc890be5333
MD5 2d1658c3d0f04a21bdc510437a072d0e
BLAKE2b-256 d3b8274e3984fb51ef78c9897af7e2a174a52aa5d430bc9a9ec91c0a98c60947

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