grip - Better Package Management

1 min read Original article ↗

# 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

# Figuring out why something is installed

$ grip why amqp

amqp@1.4.9 ← kombu@3.0.37 ← celery@3.1.0