Skip to main content

Somewhere between pip and pipsi

Project description

PIPIS

Somewhere between pip and pipsi

"pipis" stands for "pip isolate"
and "pipi" is the french for "peepee" which is a fun name but pipi was already taken…

Actually it is a rewrite of pipsi but with venv instead of virtualenv.

What does it do?

Pipis is a wrapper around venv and pip which installs scripts provided by python packages into separate venvs to shield them from your system and each other.

It creates a venv in ~/.local/venvs/, update pip, installs the package, and links the package's scripts to ~/.local/bin/. These directory can be changed respectively through the environment variables PIPIS_VENVS and PIPIS_BIN.

Why not pipsi?

Because i do not care about Python 2, and virtualenv copies python's binaries while venv just symlink them (which i think is cleaner, but it still copies pip which is not clean…).

How to install

python3 -m venv ~/.local/venvs/pipis
source ~/.local/venvs/pipis/bin/activate
pip install -U pip
pip install pipis
deactivate
ln -s ~/.local/venvs/pipis/bin/pipis ~/.local/bin/pipis

How to update

pipis update pipis

How to uninstall

pipis uninstall pipis

How to use

Show help

$ pipis --help
Usage: pipis [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

Commands:
  install
  list
  uninstall
  update

You can also invoke --help on each commands.

Install package(s)

$ pipis install ansible
Do you want to continue? [y/N]: y
Installing  [####################################]  100%

You can install multiple packages:

$ pipis install ansible ansible-lint jmespath
Do you want to continue? [y/N]: y
Installing  [####################################]  100%

Unattended install package(s)

$ pipis install --yes awscli
Installing  [####################################]  100%

Update package(s)

$ pipis update ansible
Do you want to continue? [y/N]: y
Updating  [####################################]  100%

You can also update all installed packages at once:

$ pipis update
Do you want to continue? [y/N]: y
Updating  [####################################]  100%

List installed packages

$ pipis list
Installed:
  - ansible
  - ansible-lint
  - awscli
  - bashate
  - docker-compose
  - flake8
  - jmespath
  - pipis
  - poetry
  - pylint
  - python-language-server
  - twine

Uninstall package(s)

$ pipis uninstall ansible
Do you want to continue? [y/N]: y
Removing  [####################################]  100%

Credits

Project details


Release history Release notifications

This version
History Node

1.3.0

History Node

1.2.0

History Node

1.1.0

History Node

1.0.1

History Node

1.0.0

History Node

0.1.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
pipis-1.3.0-py3-none-any.whl (14.4 kB) Copy SHA256 hash SHA256 Wheel py3 May 20, 2018
pipis-1.3.0.tar.gz (5.0 kB) Copy SHA256 hash SHA256 Source None May 20, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page