This project is in beta. It requires extensive testing but is in a working state. I want to be able to establish some reasonable guarantee that this will provide cross-platform and cross-architecture compatibility beyond reproach.
Scientifically reproducible, containerized Python and R environments for data science
venvoy creates truly portable Python and R environments that deliver identical results across any platform. Built for data scientists, researchers, and teams who need:
- Exact same numerical results from the same analysis, regardless of hardware
- Bit-for-bit identical outputs across Intel, Apple Silicon, and ARM servers
- Complete environment snapshots that can be shared with colleagues and reviewers
- Long-term archival for research validation and replication studies
- Guaranteed reproducibility for regulatory compliance and peer review
- HPC cluster compatibility for research computing without root access
- Peer review: Reviewers can run your exact environment and reproduce results
- Team collaboration: All members get identical results regardless of their hardware
- Cross-institutional: Share environments between universities, companies, labs
- Publication reproducibility: Research can be validated years later with identical setup
- Regulatory compliance: FDA, clinical trials, and other regulated environments
- Academic standards: Meet journal requirements for computational reproducibility
- "Works on my machine": Eliminate environment differences between team members
- Architecture conflicts: Same code, same results on x86_64, ARM64, Apple Silicon
- Version drift: Lock down exact package versions for long-term reproducibility
- Platform dependencies: Handle Windows/Linux/macOS differences seamlessly
- Hardware specifics: Manage CUDA vs Metal vs CPU-only package variants
- HPC access barriers: Work on research clusters without root access or Docker
- Container runtime conflicts: Automatic detection of Docker, Apptainer, Singularity, Podman
Developers, Hobbyists, Researchers, and IT Professionals - have you had these headaches?
- Package builds that are still running after waking up from a long nap?
- Published research that can't be reproduced because the original Python environment is lost or incompatible?
- Peer review failures when reviewers can't replicate your computational results on their systems?
- Cross-platform collaboration breakdown where the same analysis produces different results on Intel vs ARM architectures?
- Regulatory compliance issues where you can't demonstrate exact reproducibility of your statistical models?
- "Works on my machine" syndrome that prevents your team from validating each other's data science work?
- Version drift disasters where updating one package breaks your entire analysis pipeline?
venvoy solves these fundamental scientific reproducibility problems.
venvoy creates containerized Python and R environments that deliver identical sofware environments across any platform. Unlike traditional virtual environments that are tied to specific systems and architectures, venvoy environments guarantee the same numerical outputs whether running on:
- Research institutions - Share exact environments between universities and labs
- Cross-platform teams - Intel workstations, Apple Silicon laptops, ARM cloud servers
- Regulatory environments - FDA submissions, clinical trials, financial modeling
- Long-term archival - Reproduce results years later for validation studies
- Peer review - Reviewers get your exact computational environment
- Multi-architecture deployment - Seamless scaling from laptop to cloud infrastructure
- HPC clusters - Work on research computing clusters without root access
Venvoy is not a way to eliminate hardware-level differences that affect floating-point math, random number generation, etc. Plese see docs\ARCHITECTURAL_DIFFERENCE_EXAMPLES for more detail on this issue.
Here is a brief summary of strategies you can use to eliminate or at least minimize the impact of CPU architecture differences on reproducibility of your computations. For more detail, see docs\ARCHITECTURAL_STRATEGIES.md
- Use explicit precision types - Always specify
np.float64ornp.float32rather than relying on defaults - Set tolerances for comparisons and document them - Use
np.allclose()with appropriatertolandatolinstead of exact equality, and document expected precision bounds in your code and documentation - Pin your BLAS/LAPACK backend - Specify the OpenBLAS linear algebra library to use across the board instead of allowing the system to fall back on its own BLAS implementation.
- Avoid extended precision accumulation - Use
math.fsum()or Kahan summation for long-running sums - Use deterministic algorithms - Disable non-deterministic GPU operations and set
PYTHONHASHSEED - Run validation tests across architectures - Include numerical tolerance tests in your CI/CD pipeline
- Consider fixed-point or arbitrary precision - Use
decimal.Decimalormpmathfor calculations requiring exact reproducibility
- π’ HPC Clusters & Research Computing: Apptainer/Singularity containers without root access
- π’ Enterprise & Shared Systems: Secure container execution without admin privileges
- πͺ Windows: Docker Desktop + WSL2 runs Linux containers seamlessly
- π macOS: Docker Desktop virtualizes Linux containers transparently
- π§ Linux (with root): Docker/Podman with full container privileges
- π― Result: Identical Python environments regardless of your host OS or privilege level!
ποΈ Multi-Architecture Support:
- Intel/AMD x86_64: Full native performance on desktop and server
- Apple Silicon (M1/M2): Optimized ARM64 containers for maximum performance
- ARM64 Servers: Cloud-native support for ARM-based infrastructure
- Automatic Selection: Docker automatically pulls the correct architecture for your system
Enterprise platforms (IBM Power/mainframes) may be made available; if you are interested please support the project and let me know. { .is-info }
π§ Multi-Runtime Container Support:
- Docker: Traditional containers for development environments
- Apptainer: Modern HPC container runtime (no root access required)
- Singularity: Legacy HPC container runtime (widely adopted)
- Podman: Rootless containers for enterprise environments
- Automatic Detection: Venvoy chooses the best available runtime for your environment
- π Python 3.10-3.13 support - Choose your Python version (paired with R versions)
- π R 4.2-4.5 support - Choose your R version
- π§ AI-powered editors - Cursor (AI-first) and VSCode with AI extensions
- π³ Multi-runtime containers - Docker, Apptainer, Singularity, and Podman
- π’ HPC compatibility - Works on clusters without root access
- π§ Automatic runtime detection - Chooses best container technology for your environment
- ποΈ Multi-architecture builds - AMD64, ARM64, ARM32 with automatic selection
- π Cross-platform compatibility - Works on Windows, macOS, and Linux
- π¦ Wheel caching - Offline package installation support
- πΎ Multiple export formats - YAML, Dockerfile, tarball, and comprehensive archives
- π€ AI-ready environment - Pre-configured for AI/ML development
- π Home directory mounting - Access your files from containers
- β‘ Ultra-fast package managers - uv and pip for optimal performance
- π¬ Scientific reproducibility - Complete environment snapshots for research validation
The prerequisites will be handled for you automatically if they are missing:
- Container Runtime: Docker, Apptainer, Singularity, or Podman (will be detected automatically)
- AI Editor: Cursor (recommended) or VSCode (will prompt for installation)
- Python 3.10 or higher only required for alternative/development installations
Venvoy automatically detects HPC environments and uses the appropriate container runtime:
- Apptainer/Singularity: No root access required, perfect for research clusters
- Podman: Rootless containers for enterprise environments
- Docker: Traditional containers for development environments
Automatic Environment Detection:
- Detects SLURM, PBS, LSF, SGE job schedulers
- Identifies HPC hostname patterns (login, compute, node, hpc, cluster)
- Adjusts runtime priority based on environment type
venvoy is used in several different ways depending on where you run it and whether you want the Cursor IDE or a terminal. Pick the guide that matches your scenario for a complete, self-contained walkthrough of installation, setup, configuration, and execution.
- Local machine with Cursor: run venvoy on your own computer and open Cursor directly in the container.
- Local machine in the terminal: run venvoy on your own computer using an interactive shell only.
- HPC cluster with SLURM in the terminal: interactive and batch jobs on a SLURM cluster.
- HPC cluster with SLURM connected to local Cursor: edit on a compute node from Cursor on your laptop, tunneled through the login node.
- HPC cluster with PBS or Torque in the terminal: interactive and batch jobs on a PBS or Torque cluster.
(Recommended)Linux/macOS/WSL:
curl -fsSL https://raw.githubusercontent.com/zaphodbeeblebrox3rd/venvoy/main/install.sh | bashWindows PowerShell: If you're not using WSL, you are in unfamiliar territory, and just want to get started.
iwr -useb https://raw.githubusercontent.com/zaphodbeeblebrox3rd/venvoy/main/install.ps1 | iexRequirements: Only Docker is needed! No Python installation required on host.
The bootstrap installer:
- Detects your platform (Linux/macOS/Windows) and shell (bash/zsh/fish)
- Checks for Docker (installs if missing on Linux)
- Creates a containerized venvoy that runs entirely in Docker
- Adds venvoy to PATH automatically in your shell configuration
- Creates system-wide symlink when possible (Linux/macOS)
- Tests installation and provides immediate feedback
- First run builds bootstrap image with Python + venvoy inside
PATH Integration Features:
- β Multi-shell support - Detects bash, zsh, fish, and more
- β Immediate availability - Works in current session when possible
- β
System-wide access - Creates
/usr/local/binsymlink when writable - β Smart detection - Prevents duplicate PATH entries
- β Cross-platform - Works on Linux, macOS, Windows, and WSL
Result: You get a fully functional venvoy command available from any directory!
One-Liner Updates (Recommended): The same one-liner installation commands act as updaters:
Linux/macOS/WSL:
curl -fsSL https://raw.githubusercontent.com/zaphodbeeblebrox3rd/venvoy/main/install.sh | bashWindows PowerShell:
iwr -useb https://raw.githubusercontent.com/zaphodbeeblebrox3rd/venvoy/main/install.ps1 | iexBuilt-in Update Commands:
# Update venvoy to latest version
venvoy update
# Alternative update command
venvoy upgradeWhat Gets Updated:
- β Bootstrap script - Latest features and bug fixes
- β Docker image - Latest venvoy code and dependencies
- β Platform detection - Enhanced WSL and cross-platform support
- β Editor integration - Improved AI editor detection
- β Uninstall functionality - Working uninstall command
- β Error handling - Better error messages and recovery
Update Features:
- π Smart detection - Automatically detects existing installations
- π Zero downtime - Updates happen seamlessly in background
- β¨ Feature announcements - Shows new features after update
- π‘οΈ Safe updates - Preserves existing environments and configurations
- π¦ Bootstrap updates - Ensures latest Docker image is available
From PyPI (requires Python):
pip install venvoyFrom Source (requires Python):
git clone https://github.com/zaphodbeeblebros3rd/venvoy.git
cd venvoy
pip install -e .Development Installation:
git clone https://github.com/zaphodbeeblebrox3rd/venvoy.git
cd venvoy
make install-devAfter installation, test that venvoy is available:
venvoy --helpCheck your container runtime:
venvoy runtime-infoThis will show you which container runtime venvoy will use and whether it detected an HPC environment.
If the command isn't found, restart your terminal or run:
source ~/.bashrc # or ~/.zshrc for zsh usersRecommended method (if venvoy is working):
venvoy uninstallAlternative methods (if venvoy command is not available):
Linux/macOS/WSL:
curl -fsSL https://raw.githubusercontent.com/zaphodbeeblebrox3rd/venvoy/main/uninstall.sh | bashWindows (PowerShell):
iwr -useb https://raw.githubusercontent.com/zaphodbeeblebrox3rd/venvoy/main/uninstall.ps1 | iexUninstall options:
# Quick uninstall with confirmation
venvoy uninstall
# Force uninstall without prompts
venvoy uninstall --force
# Keep environment exports
venvoy uninstall --keep-projects
# Keep Docker images
venvoy uninstall --keep-images
# Minimal cleanup (keep projects and images)
venvoy uninstall --keep-projects --keep-imagesThe uninstaller will:
- ποΈ Remove all venvoy files and directories
- π§ Clean up PATH entries from shell configs
- π³ Optionally remove Docker images and containers
- π Optionally preserve your environment exports
# Check your container runtime (especially important for HPC)
venvoy runtime-infoπ‘ Pro Tip: The venvoy runtime-info command is especially useful on HPC clusters to verify that venvoy will use Apptainer/Singularity instead of Docker.
# Create a Python 3.11 environment (default)
venvoy init
# Create with specific Python version
venvoy init --runtime python --python-version 3.12 --name my-project
# Force reinitialize existing environment
venvoy init --force# Create an R 4.4 environment (default)
venvoy init --runtime r --name my-r-project
# Create with specific R version
venvoy init --runtime r --r-version 4.3 --name biostatistics
# R environment with specific packages focus
venvoy init --runtime r --r-version 4.5 --name genomics-analysisπ‘ Note: If you see an "environment already exists" error, use
--forceto reinitialize or--nameto create a new environment with a different name.
AI Editor Integration: During initialization, venvoy will detect available AI-powered editors (Cursor and VSCode). You'll be prompted to choose your preferred editor or can opt for an enhanced interactive shell with AI-ready environment setup.
# Launch environment (AI editor if available, otherwise interactive shell)
venvoy run
# Force interactive shell mode
venvoy run --command /bin/bash
# Run specific command
venvoy run --command "python script.py"
# Mount additional directories (works with all container runtimes)
venvoy run --mount /host/data:/container/data
# HPC example: Mount scratch directory
venvoy run --mount /scratch/data:/workspace/data# Interactively restore from a previous environment export
venvoy restore --name my-project
# View environment history
venvoy history --name my-projectAdd packages to your requirements.txt or requirements-dev.txt files in the environment directory, then rebuild:
# Rebuild environment with new packages
venvoy init --force
# Or freeze current state with all wheels
venvoy freeze --include-dev# Export as environment YAML
venvoy export --format yaml --output environment.yaml
# Export as standalone Dockerfile
venvoy export --format dockerfile --output Dockerfile
# Export as tarball for offline use
venvoy export --format tarball --output project.tar.gz
# Export as comprehensive binary archive (for reproducibility on the same CPU Architecture)
venvoy export --format archive --output research.tar.gz
# Export as wheelhouse archive for cross-architecture reproducibility
venvoy export --format wheelhouse --output research.tar.gz
#### π¦ Comprehensive Binary Archives (Archive Format)
For **scientific reproducibility** and **long-term archival**, venvoy supports comprehensive binary archives:
```bash
# Create comprehensive archive (1-5GB file)
venvoy export --name my-research --format archive
# Import archive on any system (same architecture)
venvoy import research-archive-20240621_143022.tar.gz --format archive
# Force overwrite existing environment
venvoy import archive.tar.gz --format archive --forceBinary archives contain:
- β Complete Docker image with all binaries and libraries
- β System packages and dependencies with exact versions
- β Full dependency trees and package manifests
- β Platform and architecture information
- β Self-contained restore scripts and documentation
Use cases:
- Regulatory Compliance: FDA, clinical trials, financial modeling
- Peer Review: Share exact computational environments with reviewers
- Long-term Storage: Archive environments for 5-10+ years
- Package Abandonment Protection: Continue using environments even if packages disappear from PyPI
- Cross-institutional Collaboration: Ensure identical results across different organizations
- HPC Clusters: Work on research clusters without root access
- Multi-Runtime Environments: Seamlessly switch between Docker, Apptainer, Singularity, and Podman
For cross-architecture reproducibility (works on both x86_64 and ARM64):
# Create wheelhouse archive (500MB-2GB file)
venvoy export --name my-research --format wheelhouse
# Import wheelhouse on any architecture (amd64 or arm64)
venvoy import research-wheelhouse-20240621_143022.tar.gz --format wheelhouse
# Build and use the environment
venvoy init --name my-research --force
venvoy run --name my-researchWheelhouse archives contain:
- β Python source distributions (architecture-independent)
- β Python wheels for multiple architectures (amd64, arm64)
- β R source packages (architecture-independent)
- β R binary packages for multiple architectures
- β Package manifests and metadata
- β Does NOT include Docker image (must build after import)
Use cases:
- Cross-Platform Development: Work on Intel Mac, Apple Silicon, and Linux
- Multi-Architecture Deployment: Deploy to both x86_64 and ARM64 servers
- Offline Package Installation: Install packages without repository access
- Architecture Portability: Share environments across different CPU architectures
Venvoy is designed to work seamlessly on High-Performance Computing (HPC) clusters where Docker may not be available or require root access.
For step-by-step, scenario-specific walkthroughs, see Choose your setup guide. The sections below summarize the key concepts.
Venvoy automatically detects your environment and chooses the best container runtime:
# Check what runtime venvoy will use
venvoy runtime-infoRuntime Priority (HPC Environments):
- Apptainer - Most HPC-friendly, no root access required
- Singularity - Legacy HPC container runtime
- Podman - Rootless containers
- Docker - Fallback (may require root)
Runtime Priority (Development Environments):
- Docker - Most familiar
- Podman - Rootless alternative
- Apptainer/Singularity - Available but less common
π‘ Smart Detection: Venvoy checks for all available runtimes and chooses the best one for your environment, ensuring maximum compatibility.
# On an HPC cluster with Apptainer/Singularity
venvoy runtime-info # Shows: Runtime: apptainer, HPC Environment: True
# Initialize environment (works without root access)
venvoy init --runtime python --name my-research
# Run your analysis
venvoy run --name my-research --command "python analysis.py"For complete, step-by-step SLURM and PBS/Torque walkthroughs (interactive and batch), see the scenario guides:
-
Use Apptainer/Singularity When Available
- No root access required
- Designed specifically for HPC environments
- Widely adopted in scientific computing
-
Leverage Bind Mounts for Data
venvoy run --mount /scratch/data:/workspace/data venvoy run --mount /home/user/code:/workspace/code
-
Export Environments for Reproducibility
# Export for sharing venvoy export --format archive --output research-env.tar.gz # Import on another system venvoy import research-env.tar.gz --format archive
-
Monitor Resource Usage
- Works with standard HPC monitoring tools
- SLURM's
squeueandscontrol - PBS's
qstat - System monitoring tools
-
Verify Runtime Selection
# Always check what runtime will be used venvoy runtime-info # Should show Apptainer/Singularity on HPC clusters
-
Handle Network Issues
- Some clusters have restricted Docker Hub access
- Use comprehensive archives for offline environments
- Contact system administrators for registry access
Common Issues:
- "No supported container runtime found" - Contact your HPC system administrators
- Permission denied errors - Ensure you're using Apptainer/Singularity (not Docker)
- Image pulling fails - Check network connectivity and registry access
- Network timeouts - Common on restricted clusters, use comprehensive archives
Getting Help:
# Check runtime information
venvoy runtime-info
# Verify HPC detection
python -c "from venvoy.container_manager import ContainerManager; print(ContainerManager()._is_hpc_environment())"
# Test runtime availability
python -c "from venvoy.container_manager import ContainerRuntime; print(ContainerManager()._check_runtime_available(ContainerRuntime.APPTAINER))"Network Issues on HPC Clusters:
- Some clusters block Docker Hub access
- Use
venvoy export --format archiveto create offline environments - Import archives with
venvoy import --format archivefor offline use - Contact system administrators for registry access if needed
For detailed HPC documentation, see docs/HPC_COMPATIBILITY.md.
You can run a venvoy environment as a job on a compute node and connect to it
from Cursor running on your laptop. venvoy remote starts an SSH server inside
the container on the compute node, and venvoy connect on your laptop tunnels
to it through the login node using an SSH ProxyJump and opens Cursor Remote-SSH.
For the complete walkthrough, including prerequisites, options, and troubleshooting, see HPC cluster with SLURM connected to local Cursor.
Python Data Science Workflow:
# 1. Create research environment
venvoy init --runtime python --name cancer-research --python-version 3.11
# 2. Run environment and install packages
venvoy run --name cancer-research
# Inside container:
uv pip install pandas numpy scipy scikit-learn matplotlib seaborn
uv pip install specific-research-package==1.2.3
# 3. Do your research work...
python analyze_data.py
jupyter notebook research_analysis.ipynb
# 4. Create comprehensive archive for submission/review
venvoy export --name cancer-research --format archive --output cancer-research-final.tar.gz
# 5. Years later, or on different system, restore exact environment
venvoy import cancer-research-final.tar.gz --format archive
venvoy run --name cancer-research
# Exact same results guaranteed!HPC Research Workflow:
# 1. Check runtime (should show Apptainer/Singularity on HPC)
venvoy runtime-info
# 2. Create research environment
venvoy init --runtime python --name hpc-research --python-version 3.11
# 3. Run with data mounted from scratch directory
venvoy run --name hpc-research --mount /scratch/data:/workspace/data
# 4. Export for sharing with collaborators
venvoy export --name hpc-research --format archive
# 5. Submit as SLURM job
venvoy run --name hpc-research --command "python analysis.py"R Statistical Analysis Workflow:
# 1. Create R research environment
venvoy init --runtime r --name biostatistics --r-version 4.4
# 2. Run environment and install packages
venvoy run --name biostatistics
# Inside container:
install.packages(c("survival", "meta", "forestplot"))
BiocManager::install(c("limma", "edgeR", "DESeq2"))
# 3. Do your statistical analysis...
Rscript clinical_trial_analysis.R
R -e "rmarkdown::render('statistical_report.Rmd')"
# 4. Create comprehensive archive for regulatory submission
venvoy export --name biostatistics --format archive --output fda-submission-env.tar.gz
# 5. Regulatory review or replication
venvoy import fda-submission-env.tar.gz --format archive
venvoy run --name biostatistics
# Exact statistical results guaranteed for regulatory compliance!# Check and update AI editor integration settings
venvoy configure --name my-project
# Learn about package managers
venvoy package-managers
# List all environments
venvoy list
# View environment export history
venvoy history --name my-project
# Uninstall venvoy completely
venvoy uninstallvenvoy automatically tracks and saves your environment changes:
- Location:
~/venvoy-projects/[environment-name]/ - Auto-created: Created automatically for each environment
- Contents:
environment.yml(latest state)environment_YYYYMMDD_HHMMSS.yml(timestamped exports).last_updatedtimestamp
- Real-time monitoring: Detects package installations/removals as they happen
- Smart categorization: Separates Python and R packages automatically
- Timestamped exports: Each change creates a dated backup file
- Exit save: Final save when container stops
- Simplified format: Clean YAML format with Python and R package sections
- History tracking: Retain complete environment evolution history
- Package Installation:
uv pip install,pip install,R -e "install.packages('package')" - Package Removal:
uv pip uninstall,pip uninstall - Package Updates: Version changes detected automatically
- Container Exit: Final state captured when session ends
name: my-project
channels:
- conda-forge
- defaults
dependencies:
- numpy=1.24.3
- pandas=2.0.2
- matplotlib=3.7.1
- pip:
- fastapi==0.100.0
- uvicorn==0.22.0venvoy includes package managers optimized for Python and R:
- 10-100x faster than pip for Python packages
- Written in Rust for maximum performance
- Best for: All Python packages from PyPI
- Usage:
uv pip install fastapi uvicorn requests numpy pandas scikit-learn
- Universal compatibility and fallback option
- Best for: Legacy packages, special cases
- Usage:
pip install some-special-package
- Install R packages from CRAN repository
- Best for: Statistical computing, data analysis
- Usage:
R -e "install.packages('tidyverse')"orinstall.packages(c('tidyverse', 'devtools'))
venvoy uses system Python with UV for optimal performance:
- uv for all Python packages (primary method)
- pip as a reliable fallback
- R install.packages() for R packages from CRAN
The init command performs the following steps:
- Platform Detection - Identifies OS, architecture, and available tools
- Docker Setup - Ensures Docker is installed and running
- Editor Check - Verifies AI editor installation (optional)
- Environment Setup - Downloads pre-built environment for your Python version
- Configuration - Creates directory structure and configuration
- Home Mounting - Configures access to host home directory
The freeze command creates a complete snapshot:
- Dependency Analysis - Scans requirements.txt files
- Ultra-fast Downloads - Uses
uvfor 10-100x faster wheel downloads - Fallback Strategy - Falls back to
pip downloadif needed - Source Building - Builds wheels from source if needed
- Vendor Directory - Stores all wheels in
vendor/folder - Snapshot Creation - Creates timestamped environment snapshot
The run command launches your environment with different modes:
With VSCode Available:
- Container Launch - Starts container in detached mode
- VSCode Connection - Automatically connects VSCode to container
- Remote Development - Full IDE experience inside container
- Volume Mounting - Access to home directory and workspace
Without VSCode (Interactive Shell):
- Volume Mounting - Mounts home directory and current workspace
- User Mapping - Maps host user ID to container user
- Environment Ready - System Python and R are immediately available
- Enhanced Shell - Custom prompt with environment information
- TTY Allocation - Provides interactive terminal access
Export formats include:
- YAML - Environment specification for reconstruction
- Dockerfile - Standalone Dockerfile for custom builds
- Tarball - Complete offline package with all dependencies
venvoy/
βββ src/venvoy/
β βββ cli.py # Command-line interface
β βββ core.py # Core environment management
β βββ docker_manager.py # Docker operations
β βββ platform_detector.py # Cross-platform detection
β βββ templates/ # Dockerfile templates
βββ ~/.venvoy/ # User configuration
β βββ environments/ # Environment storage
β βββ <env-name>/
β βββ Dockerfile
β βββ docker-compose.yml
β βββ requirements.txt
β βββ requirements-dev.txt
β βββ vendor/ # Cached wheels
β βββ config.yaml
Each environment has a config.yaml file:
name: my-project
python_version: "3.11"
created: "2024-01-01T00:00:00"
platform:
system: windows
architecture: amd64
base_image: python:3.11-slim
packages: []
dev_packages: []If you see an error like:
RuntimeError: Environment 'venvoy-env' already exists at ~/.venvoy/environments/venvoy-env.
This directory contains your environment configuration, Dockerfile, and requirements.
Use --force to reinitialize and overwrite the existing environment.
Solutions:
-
Reinitialize the existing environment:
venvoy init --force
-
Use a different environment name:
venvoy init --name my-new-project
-
Start working with the existing environment:
venvoy run
-
List all environments to see what's available:
venvoy list
If you get Docker-related errors:
# Start Docker Desktop (macOS/Windows)
# Or on Linux:
sudo systemctl start docker
sudo systemctl enable dockerIf you encounter permission errors:
# Add your user to the docker group (Linux)
sudo usermod -aG docker $USER
# Then log out and back inIf Cursor or VSCode isn't detected:
- Cursor: Download from cursor.sh
- VSCode: Download from code.visualstudio.com
- Manual launch: Use
venvoy run --command /bin/bashfor interactive shell
# Run all tests
make test
# Run with coverage
pytest tests/ --cov=src/venvoy --cov-report=html
# Run specific test
pytest tests/test_platform_detector.py -v# Format code
make format
# Run linting
make lint
# Install pre-commit hooks
make install-dev- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Docker team for the containerization platform
- Python Software Foundation for the language
- R Core Team for the R language and statistical computing environment
- Anaconda team for miniconda
- All contributors and users of venvoy