Skip to content
pip script installer
Python
Branch: master
Clone or download
untitaker Merge pull request #182 from cs01/master
recommend pipx as alternative
Latest commit db3e3fc May 24, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
pipsi change how virtualenv is installed by pipsi Jun 2, 2018
testing remove version string match in test_create_env May 31, 2018
.gitignore
.travis.yml remove python 3.3 from travis matrix May 30, 2018
LICENSE Initial commit. Aug 10, 2014
MANIFEST.in update description Jun 5, 2018
README.md update url Feb 8, 2019
appveyor.yml
get-pipsi.py
setup.py
tox.ini Merge branch 'master' into feature/specify-python-version May 30, 2018

README.md

pipsi

⚠️ pipsi is no longer maintained. See pipx for an actively maintained alternative. https://github.com/pipxproject/pipx


pipsi = pip script installer

What does it do?

pipsi makes installing python packages with global entry points painless. These are Python packages that expose an entry point through the command line such as Pygments.

If you are installing Python packages globally for cli access, you almost certainly want to use pipsi instead of running sudo pip .... so that you get

  • Isolated dependencies to guarantee no version conflicts
  • The ability to install packages globally without using sudo
  • The ability to uninstall a package and its dependencies without affecting other globally installed Python programs

pipsi is not meant for installing libraries that will be imported by other Python modules.

How do I get it?

curl https://raw.githubusercontent.com/mitsuhiko/pipsi/master/get-pipsi.py | python

to see installation options, including not automatically modifying the PATH environment variable

curl https://raw.githubusercontent.com/mitsuhiko/pipsi/master/get-pipsi.py | python - --help

How does it work?

pipsi is a wrapper around virtualenv and pip which installs scripts provided by python packages into isolated virtualenvs so they do not pollute your system's Python packages.

pipsi installs each package into ~/.local/venvs/PKGNAME and then symlinks all new scripts into ~/.local/bin (these can be changed by PIPSI_HOME and PIPSI_BIN_DIR environment variables respectively).

Here is a tree view into the directory structure created by pipsi after installing pipsi and running pipsi install Pygments.

/Users/user/.local
├── bin
│   ├── pipsi -> /Users/user/.local/venvs/pipsi/bin/pipsi
│   └── pygmentize -> /Users/user/.local/venvs/pygments/bin/pygmentize
├── share
│   └── virtualenvs
└── venvs
    ├── pipsi
    └── pygments

Compared to pip install --user each PKGNAME is installed into its own virtualenv, so you don't have to worry about different packages having conflicting dependencies. As long as ~/.local/bin is on your PATH, you can run any of these scripts directly.

Installing scripts from a package:

$ pipsi install Pygments

Installing scripts from a package using a particular version of python:

$ pipsi install --python /usr/bin/python3.5 hovercraft

Uninstalling packages and their scripts:

$ pipsi uninstall Pygments

Upgrading a package:

$ pipsi upgrade Pygments

Showing what's installed:

$ pipsi list

How do I get rid of pipsi?

$ pipsi uninstall pipsi

How do I upgrade pipsi?

With 0.5 and later just do this:

$ pipsi upgrade pipsi

On older versions just uninstall and reinstall.

You can’t perform that action at this time.