Skip to main content

Python package manager with true multi-version support and Python version tagging - production ready

Project description

PyPM - Python Package Manager

True version isolation with zero duplication - Multiple package versions coexist, environments use specific versions!

🚀 Quick Start

# Install PyPM
pip install pypm-manager

# Create environment  
pypm create myproject

# Activate it
pypm activate myproject  # Shows activation command
# Run the activation command shown

# Install packages with version isolation
pypm install pandas numpy scikit-learn

# Deactivate when done
deactivate

✨ The Problem PyPM Solves

Problem 1 - Duplication:

project1/venv/ → pandas 1.5.0 (100 MB)
project2/venv/ → pandas 1.5.0 (100 MB)  [DUPLICATE!]
project3/venv/ → pandas 1.5.0 (100 MB)  [DUPLICATE!]
Total: 300 MB wasted

Problem 2 - Version Conflicts:

project1 needs requests 2.28.0
project2 needs requests 2.31.0
❌ Can't have both with venv/conda!

With PyPM v2.1:

~/.pypm_central/packages/
  ├── requests/2.28.0/  [Version 1]
  ├── requests/2.31.0/  [Version 2]
  └── pandas/1.5.0/     [Shared dependency - stored once!]

✅ Both versions coexist
✅ Environments use specific versions
✅ Shared dependencies stored once
Total: Zero duplication + True isolation!

🎯 How It Works

  1. Create: pypm create myenv - Creates lightweight environment
  2. Activate: pypm activate myenv - Shows activation command
  3. Install: pypm install pandas==1.5.0 - Stores in version-specific directory
  4. Isolation: Each environment's PYTHONPATH points to its specific package versions

📦 Installation

pip install pypm-manager

🔧 Commands

# Environment Management
pypm create <name>         # Create environment
pypm activate <name>       # Show activation command
pypm install <package>     # Install with version isolation
deactivate                 # Deactivate current environment
pypm delete <name>         # Delete environment
pypm list                  # List all environments
pypm info <name>           # Show environment details

# Central Store
pypm store-info            # View central store stats

💡 Complete Example

# Create data science environment
pypm create datascience
pypm activate datascience
# Run activation command shown (e.g., C:\...\datascience\Scripts\Activate.ps1)

# Install packages with specific versions
pypm install pandas==2.1.0 numpy scikit-learn

# Work on your project...
python my_analysis.py

# Deactivate
deactivate

# Create another project with different pandas version
pypm create ml-project
pypm activate ml-project
# Activate...

pypm install pandas==2.3.0 tensorflow
# ✅ Both pandas 2.1.0 and 2.3.0 coexist!
# ✅ numpy/scikit-learn shared between projects

🌟 Features

  • True version isolation - Multiple package versions coexist
  • Environment-specific versions - Each env uses its own package versions
  • Zero duplication - Shared dependencies stored once
  • Familiar workflow - Similar to venv activation
  • Cross-platform - Windows, macOS, Linux
  • No dependencies - Pure Python stdlib

🆚 vs Other Tools

venv conda PyPM v2.1
Multiple versions No Limited Yes
Duplication Yes Yes No
Workflow activate + pip activate + conda activate + pypm
Version Isolation No Yes Yes
Storage Efficiency Low Low High

📁 Storage Locations

  • Environments: ~/.pypm_envs/
  • Versioned packages: ~/.pypm_central/packages/{name}/{version}/
  • Environment configs: {env}/.pypm_requirements.json

🤝 Contributing

https://github.com/Avishek8136/pypm

📜 License

MIT License


PyPM v2.1 - True version isolation with zero duplication! 🎉

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

pypm_manager-2.2.0.tar.gz (20.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pypm_manager-2.2.0-py3-none-any.whl (15.7 kB view details)

Uploaded Python 3

File details

Details for the file pypm_manager-2.2.0.tar.gz.

File metadata

  • Download URL: pypm_manager-2.2.0.tar.gz
  • Upload date:
  • Size: 20.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for pypm_manager-2.2.0.tar.gz
Algorithm Hash digest
SHA256 d390401929270665d172e4812f430e206aa8b3ccddb16903a7b87234531629be
MD5 299b699493f679b6042dd9177972f01e
BLAKE2b-256 4c5248119c0ce22d5851363b3a74d0358040fa80fa6e73c33dd089004a195bc8

See more details on using hashes here.

File details

Details for the file pypm_manager-2.2.0-py3-none-any.whl.

File metadata

  • Download URL: pypm_manager-2.2.0-py3-none-any.whl
  • Upload date:
  • Size: 15.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for pypm_manager-2.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 14e6aac34e8c74a15243c74a090c5bfea80b7ab9e1993161c699a9d67b36b242
MD5 91a670e8939cd8500fdd34727454516d
BLAKE2b-256 ad83b9d6ffa8811852d16230f326ea473855d39536cc8a050da11f7d4a7c1e01

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