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! 🎉
Metadata
Release files for pypm-manager 2.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pypm_manager-2.2.0.tar.gz | 20.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pypm_manager-2.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 36.2 kB
Release files / pypm_manager-2.2.0.tar.gz
| Download URL | pypm_manager-2.2.0.tar.gz |
|---|---|
| Size | 20.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d390401929270665d172e4812f430e206aa8b3ccddb16903a7b87234531629be
|
|
BLAKE2b-256 checksum How to use checksums |
4c5248119c0ce22d5851363b3a74d0358040fa80fa6e73c33dd089004a195bc8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.0
|
Release files / pypm_manager-2.2.0-py3-none-any.whl
| Download URL | pypm_manager-2.2.0-py3-none-any.whl |
|---|---|
| Size | 15.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
14e6aac34e8c74a15243c74a090c5bfea80b7ab9e1993161c699a9d67b36b242
|
|
BLAKE2b-256 checksum How to use checksums |
ad83b9d6ffa8811852d16230f326ea473855d39536cc8a050da11f7d4a7c1e01
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.0
|