CLI utility to manage Python virtual environments with auto-detection
Project description
pynstal
A CLI utility to manage Python virtual environments with auto-detection of system Python installations.
Features
- Auto-detect Python installations across Windows, macOS, and Linux (pyenv, conda, system Python)
- Manage interpreters - add, list, and configure Python interpreter paths
- Create virtual environments using any configured Python interpreter
- Install templates - predefined and custom package templates with special pip arguments (e.g., CUDA-specific PyTorch)
- Persistent configuration - interpreter paths and templates stored in
.pynstal/interpreters.jsonand.pynstal/templates.json
Installation
From PyPI
pip install pynstal
After installation, use the pynstal command:
pynstal --help
From source
git clone https://github.com/yourusername/PythonProjectManager.git
cd PythonProjectManager
pip install -e .
Quick Start
1. Detect and add Python installations
# List found Python installations
pynstal interpreter detect
# Interactively select which to add
pynstal interpreter detect --add
# Add all detected interpreters
pynstal interpreter detect --add-all
2. Create a virtual environment
pynstal create-venv "C:\Users\...\python.exe" my_venv
3. Install packages using templates
# List available templates
pynstal template list
# Create venv with datascience template (numpy, scipy, pandas, etc.)
pynstal create-from-template datascience my_ds_venv
# Create venv with PyTorch (CUDA 12.4)
pynstal create-from-template pytorch-cu124 my_pytorch_venv
4. Create custom templates
# Simple template
pynstal template add mytemplate "numpy scipy matplotlib"
# Template with special pip arguments
pynstal template add-complex pytorch-custom "torch torchvision" --args-str "--index-url https://download.pytorch.org/whl/cu124"
# Create venv from custom template
pynstal create-from-template pytorch-custom my_venv
Commands
pynstal add-interpreter <path>- Manually add a Python interpreter pathpynstal list- List all configured interpreterspynstal interpreter detect [--add | --add-all]- Auto-detect system Python installationspynstal create-venv <interpreter> <venv_dir> [--dry-run]- Create a virtual environmentpynstal create-from-template <template> <venv_dir> [--interpreter <path>] [--dry-run]- Create venv and install template packagespynstal template list- List all templatespynstal template show <name>- Show template detailspynstal template add <name> "<packages>"- Add a simple templatepynstal template add-complex <name> "<packages>" --args-str "<args>"- Add template with pip argumentspynstal template remove <name>- Remove a template
Data Storage
- Interpreters:
.pynstal/interpreters.json- stores configured Python interpreter paths - Templates:
.pynstal/templates.json- stores user-defined package installation templates
Configuration
interpreters.json
{
"FILE_PATH": "interpreters.json",
"interpreters": [
"C:\\Users\\...\\python.exe",
"/usr/bin/python3.12"
],
"global_interpreter": null
}
templates.json
{
"templates": {
"simple": ["numpy", "scipy"],
"pytorch-cu124": {
"packages": ["torch", "torchvision"],
"args": ["--index-url", "https://download.pytorch.org/whl/cu124"]
}
}
}
Platform Support
- Windows: Detects pyenv-win, AppData Python installations, system Python
- macOS/Linux: Detects /usr/bin/python*, pyenv, conda, system Python
License
MIT
Contributing
Contributions welcome! Please feel free to submit issues and pull requests.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
pynstal-0.1.3-py3-none-any.whl
(12.0 kB
view details)
File details
Details for the file pynstal-0.1.3-py3-none-any.whl.
File metadata
- Download URL: pynstal-0.1.3-py3-none-any.whl
- Upload date:
- Size: 12.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99fe2e15cd969b16308c4b0ac88ce2edfb70118dab7fc5ce40b1a5473504af0b
|
|
| MD5 |
a044876cca01d482e405229b9cc794f8
|
|
| BLAKE2b-256 |
ad11134a6a04a2a6b802d3f21f311cf3c56ba89ab4692e7de4c6f85654692810
|