Skip to main content

🐍 EnvFy - Professional Virtual Environment Manager

Python 3.7+ License: MIT PyPI version

EnvFy is a fast, precise, and user-friendly Python virtual environment management tool that makes working with virtual environments as easy as using pip!

✨ Features

  • 🚀 Lightning-fast environment creation and management
  • 🎨 Beautiful CLI with rich output and progress bars
  • 🔍 Smart Python detection - automatically finds all Python versions
  • 📦 Package management - install, uninstall, and manage packages effortlessly
  • 🎯 Environment templates - quickly create environments from predefined templates
  • 🔄 Environment cloning - duplicate environments with all packages
  • 💾 Backup & restore - safely backup and restore environments
  • 🔧 Advanced configuration - customize everything to your needs
  • 🌍 Cross-platform - works on Windows, macOS, and Linux
  • ⚡ Performance optimized - smart caching for faster operations

🚀 Quick Start

Installation

📦 Package Manager Installation

🐧 Linux:

# Ubuntu/Debian
sudo apt update && sudo apt install python3-pip
pip install envfy[uv]

# Fedora/RHEL/CentOS
sudo dnf install python3-pip
pip install envfy[uv]

# Arch Linux
sudo pacman -S python-pip
pip install envfy[uv]

# openSUSE
sudo zypper install python3-pip
pip install envfy[uv]

🍎 macOS:

# Homebrew (recommended)
brew install python3
pip3 install envfy[uv]

# MacPorts
sudo port install py311-pip
pip install envfy[uv]

# Direct Python installation
pip3 install envfy[uv]

🪟 Windows:

# Using winget (Windows Package Manager)
winget install Python.Python.3.11
pip install envfy[uv]

# Using Chocolatey
choco install python3
pip install envfy[uv]

# Using Scoop
scoop install python
pip install envfy[uv]

# Direct pip installation
pip install envfy[uv]

🚀 Manual Installation

# Basic installation
pip install envfy

# With UV support (ultra-fast package installation)
pip install envfy[uv]

# Development version with all features
pip install envfy[all]

# From source
<<<<<<< HEAD
git clone https://github.com/Pymmdrza/envfy.git
=======
git clone https://github.com/Pymmdrza/Package_envFy.git
>>>>>>> 69685c97194c7ea6dacfcbf23ab95ac6c5a66fab
cd envfy
pip install -e .[uv]

✅ Verify Installation

# Check installation
envfy --version

# Show platform information
envfy platform

# Test basic functionality
envfy create test-env --packages requests
envfy list
envfy delete test-env --force

Basic Usage

# Create a new environment
envfy create myproject

# Create with shorthand syntax
envfy --create --new myproject
envfy -c -n myproject

# Create with specific Python version
envfy create myproject --python 3.9
envfy --create --new myproject --python 3.9

# Create with packages
envfy create myproject --packages requests pandas numpy
envfy -c -n myproject --packages requests pandas

# Create with UV for ultra-fast installation
envfy create myproject --packages "fastapi uvicorn" --uv
envfy -c -n myproject --packages "django redis" --uv

# Create from requirements file
envfy create myproject --requirements requirements.txt
envfy --create --new myproject --requirements requirements.txt

# Create from requirements with UV
envfy create myproject --requirements requirements.txt --uv

# List all environments
envfy list

# Activate an environment (shows activation command)
envfy activate myproject

# Install packages in an environment
envfy install myproject requests beautifulsoup4

# Install packages with UV (ultra-fast!)
envfy install myproject --packages "numpy scipy matplotlib" --uv

# Clone an environment
envfy clone myproject myproject-backup

# Delete an environment
envfy delete myproject

📖 Documentation

Environment Management

Creating Environments

# Basic environment
envfy create webproject

# Basic environment (shorthand)
envfy --create --new webproject
envfy -c -n webproject

# With specific Python version
envfy create webproject --python 3.10
envfy -c -n webproject --python 3.10

# With description
envfy create webproject --description "Web scraping project"
envfy -c -n webproject --description "Web scraping project"

# With template
envfy create webproject --template web
envfy -c -n webproject --template web

# With packages and requirements
envfy create webproject \
    --packages flask requests \
    --requirements requirements.txt \
    --python 3.9

# Shorthand with packages and requirements
envfy -c -n webproject \
    --packages flask requests \
    --requirements requirements.txt \
    --python 3.9

Environment Information

# List all environments
envfy list

# Detailed listing
envfy list --detailed

# JSON output
envfy list --json

# Show specific environment info
envfy info webproject

Environment Operations

# Clone environment
envfy clone webproject webproject-v2

# Backup environment
envfy backup webproject

# Restore from backup
envfy restore backup.tar.gz newproject

# Delete environment
envfy delete webproject

# Rename environment
envfy rename oldname newname

Package Management

# Install packages
envfy install myproject requests pandas

# Install with options
envfy install myproject --upgrade requests
envfy install myproject --editable ./my-package

# Install from requirements
envfy install myproject --requirements requirements.txt

# Uninstall packages
envfy uninstall myproject requests

# Export requirements
envfy freeze myproject > requirements.txt
envfy freeze myproject --output requirements.txt

Python Version Management

# Show available Python versions
envfy python

# Create environment with specific version
envfy create project39 --python 3.9.7
envfy create project310 --python python3.10

Configuration

# Show current configuration
envfy config show

# Set configuration values
envfy config set default_python_version 3.9
envfy config set show_banner false

# Reset configuration
envfy config reset

Maintenance

# Diagnose issues
envfy doctor

# Clean caches
envfy clean

# Clean specific caches
envfy clean --environments
envfy clean --downloads

🎯 Advanced Usage

Environment Templates

Create reusable environment templates:

# ~/.envfy/templates/web.toml
[template]
name = "web"
description = "Web development environment"
python_version = "3.9"

[packages]
base = [
    "flask>=2.0.0",
    "requests>=2.25.0",
    "beautifulsoup4",
    "pytest",
    "black",
    "flake8"
]

[optional]
database = ["sqlalchemy", "alembic"]
async = ["aiohttp", "asyncio"]

Use template:

envfy create mywebapp --template web

Configuration File

Customize EnvFy behavior:

# ~/.envfy/config/config.toml
[global]
default_python_version = "3.9"
auto_activate = false
show_banner = true
colored_output = true
parallel_installs = true
max_workers = 4

[network]
timeout = 30
retries = 3
index_url = "https://pypi.org/simple/"

[cache]
enabled = true
ttl = 3600

Programmatic Usage

Use EnvFy in your Python scripts:

from envfy import EnvironmentManager, Environment

# Create manager
manager = EnvironmentManager()

# Create environment
env = manager.create_environment(
    name="myproject",
    python_version="3.9",
    packages=["requests", "pandas"]
)

# Use environment
if env:
    env.install_package("numpy")
    packages = env.get_packages()
    print(f"Installed packages: {len(packages)}")

# List environments
environments = manager.list_environments()
for env_name in environments:
    env = manager.get_environment(env_name)
    info = env.get_info()
    print(f"{env_name}: {info.python_version}")

🛠️ Commands Reference

Core Commands

Command Description Cross-Platform
create Create a new virtual environment ✅ All platforms
delete Delete a virtual environment ✅ All platforms
list List all environments ✅ All platforms
info Show detailed environment information ✅ All platforms
activate Show activation command ✅ All platforms
clone Clone an environment ✅ All platforms

Package Commands

Command Description Cross-Platform
install Install packages in environment ✅ All platforms
uninstall Uninstall packages from environment ✅ All platforms
freeze Export environment packages ✅ All platforms

System Commands

Command Description Cross-Platform
python Show available Python versions ✅ All platforms
platform Show platform info and installation methods ✅ All platforms
config Configuration management ✅ All platforms
clean Clean caches and temporary files ✅ All platforms
doctor Diagnose and fix issues ✅ All platforms

Platform-Specific Features

Windows:

  • PowerShell and Command Prompt support
  • Windows Terminal integration
  • Automatic PATH configuration
  • UAC-aware installation

macOS:

  • Homebrew integration
  • Apple Silicon (M1/M2) support
  • Xcode command line tools detection
  • Framework Python support

Linux:

  • Distribution package manager integration
  • Snap/Flatpak support
  • pyenv compatibility
  • SELinux compatibility

Command Options

Most commands support these common options:

Option Description
--force Force operation without confirmation
--verbose Enable verbose output
--help Show command help

🔧 Configuration

Environment Variables

Variable Description Default
ENVFY_HOME EnvFy home directory ~/.envfy
ENVFY_CONFIG Configuration file path ~/.envfy/config/config.toml

Directory Structure

~/.envfy/
├── config/
│   ├── config.toml          # Global configuration
│   └── environments/        # Environment-specific configs
├── environments/            # Virtual environments
├── templates/              # Environment templates
└── cache/                 # Cache and temporary files

🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Setup

# Clone repository
<<<<<<< HEAD
git clone https://github.com/pymmdrza/envfy.git
=======
git clone https://github.com/Pymmdrza/Package_envFy.git
>>>>>>> 69685c97194c7ea6dacfcbf23ab95ac6c5a66fab
cd envfy

# Create development environment
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# Install in development mode
pip install -e .[dev]

# Run tests
pytest

# Format code
black envfy/
isort envfy/

# Lint code
flake8 envfy/
mypy envfy/

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙋 Support

69685c97194c7ea6dacfcbf23ab95ac6c5a66fab

🌟 Acknowledgments

  • Built with Click for the CLI
  • Beautiful output powered by Rich
  • Virtual environments created with virtualenv
  • Configuration management using TOML

⚡ UV Integration - Ultra-Fast Package Installation

EnvFy integrates seamlessly with UV, the ultra-fast Python package installer and resolver written in Rust. UV can be 10-100x faster than pip for package installation!

🚀 Why Use UV with EnvFy?

  • 🔥 Blazing Fast: 10-100x faster than pip
  • 🧠 Smart Caching: Intelligent dependency resolution
  • 🔒 Reliable: Production-ready with excellent compatibility
  • 🪶 Lightweight: Minimal overhead, maximum performance

📦 Installation

# Install EnvFy with UV support
pip install envfy[uv]

# Or install UV separately
pip install uv

# Or use UV to install EnvFy itself!
uv pip install envfy

🎯 Usage Examples

Environment Creation with UV

# Create environment and install packages with UV
envfy create myproject --packages "fastapi uvicorn" --uv

# Shorthand with UV
envfy -c -n myproject --packages "django psycopg2-binary" --uv

# From requirements file with UV
envfy create webapp --requirements requirements.txt --uv

Package Management with UV

# Install packages using UV (ultra-fast!)
envfy install myproject --packages "numpy pandas matplotlib" --uv

# Upgrade packages with UV
envfy install myproject --upgrade "requests aiohttp" --uv

# Install from requirements with UV
envfy install myproject --requirements requirements.txt --uv

⚡ Performance Comparison

Operation pip UV Speedup
Install numpy 8.2s 0.9s 9.1x
Install Django 12.4s 1.2s 10.3x
Install 50 packages 3m 21s 24s 8.4x
Cold dependency resolution 45s 3s 15x

🔧 Configuration

You can set UV as the default package manager:

# Set UV as default for new environments
envfy config set default_package_manager uv

# Always use UV for installations
envfy config set always_use_uv true

💡 Pro Tips

  1. First-time setup: Install UV globally for maximum benefit

    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  2. Hybrid approach: Use UV for fast installs, pip for compatibility

    envfy install myproject --packages "common-package" --uv
    envfy install myproject --packages "edge-case-package"  # uses pip
    
  3. CI/CD optimization: UV dramatically speeds up CI pipelines

    # .github/workflows/test.yml
    - name: Create test environment
      run: envfy create test-env --requirements requirements.txt --uv
    

🤝 UV + EnvFy Integration Features

  • 🔄 Automatic fallback: Falls back to pip if UV is not available
  • 🎯 Selective usage: Choose UV per command with --uv flag
  • 📊 Performance monitoring: Track installation speeds
  • 🔧 Full compatibility: All EnvFy features work with UV
  • ⚙️ Configuration: Set UV as default in global config

🛠️ Advanced UV Usage

# Create environment with UV and specific Python version
envfy -c -n ml-project --python 3.11 --packages "torch tensorflow" --uv

# Clone environment and upgrade all packages with UV
envfy clone old-env new-env
envfy install new-env --upgrade-all --uv

# Export and recreate with UV for faster setup
envfy freeze old-env > requirements.txt
envfy create fast-env --requirements requirements.txt --uv

Made with ❤️ by the EnvFy team

Fast, Precise, Professional Virtual Environment Management

Metadata

Release files for envfy 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for envfy 1.3.0
File Size Uploaded
envfy-1.3.0.tar.gz 50.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for envfy 1.3.0
File Interpreter ABI Platform
envfy-1.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 100.5 kB

Release files / envfy-1.3.0.tar.gz

Download URL envfy-1.3.0.tar.gz
Size 50.0 kB
Tags Source
SHA-256 checksum
How to use checksums
0fc1999247523c6a701536582878c967d4fd54494f28a02f4670ff32d452608b
BLAKE2b-256 checksum
How to use checksums
afeae10a464403d9e0a8e91fad4621f41103e34753870e537d15f7312207ff4d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release files / envfy-1.3.0-py3-none-any.whl

Download URL envfy-1.3.0-py3-none-any.whl
Size 50.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6a8322eaff5283161a95b90234380aaf5af5d7655a6fcd33147dac1d72c594c9
BLAKE2b-256 checksum
How to use checksums
02e04b783ce7a677604bd988d0638e4314bdd71e55c56ee8c264babe1a6347fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release history Release notifications | RSS feed

This release

1.3.0 This release

2 release files

1.0.9

2 release files

1.0.6

2 release files

1.0.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page