grip


Better package management for Python
Does what pip should have been doing by now.

About

grip is a drop-in extension wrapper for pip that adds commands like install --savecheck and run, takes a virtualenv-first approach and doesn't need a wonky source venv/bin/activate.

[GitHub] [Issues] [PyPI]

Setup

grip requires Python 3.6 or later

Install it globally using pip:

grip examples
---
pip examples
---
# Installing dependencies
grip install
 
. venv/bin/activate
pip install -r requirements.txt
# Adding packages
grip install -S django 'celery>=3,<4'
 
pip install django 'celery>=3,<4'
vi requirements.txt
# Running
grip run pyflakes --statistics
 
. venv/bin/activate
pyflakes --statistics
# or
./venv/bin/pyflakes --statistics
# List installed
grip list
info 5 packages installed
 - coloredlogs@9.0
   └──humanfriendly>=4.7 → none
 - humanfriendly@4.6
warn 1 dependency problem found
grip freeze
coloredlogs==9.0
humanfriendly==4.6
 
pip freeze
coloredlogs==9.0
humanfriendly==4.6
# Downloading packages
grip download django==2.0
info downloading Django-2.0-py3-none-any.whl
grip download --source django==2.0
info downloading Django-2.0.tar.gz
 
pip download --only-binary=:all: django==2.0
pip download django==2.0
# Checking for consistency
grip check
 - humanfriendly@4.6 (installed)
   ├──[ok] ==4.6 required by -project-
   └──[mismatch] >=4.7 required by coloredlogs
# Checking for updates
grip outdated
Installed Available Latest
------------------------------------
humanfriendly@4.6  4.6 4.8

info 1 outdated packages
# Figuring out why something is installed
grip why amqp
amqp@1.4.9 kombu@3.0.37 celery@3.1.0