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
- Create:
pypm create myenv- Creates lightweight environment - Activate:
pypm activate myenv- Shows activation command - Install:
pypm install pandas==1.5.0- Stores in version-specific directory - 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
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
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d390401929270665d172e4812f430e206aa8b3ccddb16903a7b87234531629be
|
|
| MD5 |
299b699493f679b6042dd9177972f01e
|
|
| BLAKE2b-256 |
4c5248119c0ce22d5851363b3a74d0358040fa80fa6e73c33dd089004a195bc8
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
14e6aac34e8c74a15243c74a090c5bfea80b7ab9e1993161c699a9d67b36b242
|
|
| MD5 |
91a670e8939cd8500fdd34727454516d
|
|
| BLAKE2b-256 |
ad83b9d6ffa8811852d16230f326ea473855d39536cc8a050da11f7d4a7c1e01
|