Package: pipis
PIPIStestspackageSomewhere between pip and pipsi"pipis" stands for "pip isolate"and "pipi" is the french for "peepee" which is a fun name butpipiwas already taken…Actually it is a rewrite ofpipsibut withvenvinstead ofvirtualenv.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/share/pipis/venvs/, update pip, installs the package, and links the package's scripts to~/.local/share/pipis/bin/. These directory can be changed respectively through the environment variablesPIPIS_VENVSandPIPIS_BIN.Why not pipsi?Because i do not care about Python 2, andvirtualenvcopies python's binaries whilevenvjust symlink them (which i think is cleaner, but it still copiespipwhich is not clean…).How to installAutomaticComing soon…ManualCreate the pipis venvs and bin directories:mkdir-p~/.local/share/pipis/{venvs,bin}Create and activate the pipis virtual environment:python3-mvenv~/.local/share/pipis/venvs/pipissource~/.local/share/pipis/venvs/pipis/bin/activateUpgrade the pip package:pipinstall-UpipInstall pipis:pipinstallpipisExit the virtual environment:deactivateLink the pipis script into the "global" bin directory:ln-s~/.local/share/pipis/venvs/pipis/bin/pipis~/.local/share/pipis/bin/Add the pipis "global" bin directory to your PATH:exportPATH="~/.local/share/pipis/bin:${PATH}"How to updatepipis update pipisHow to uninstallpipis uninstall pipisHow to useShow help$ pipis -h
usage: pipis [-h] [-v] {version,freeze,search,install,update,uninstall} ...

Pipis installs Python packages into their own dedicated virtualenv to shield
them from your system and from each other. Virtualenvs are created in
`PIPIS_VENVS` (default: `~/.local/share/pipis/<package>`) and links the
scripts to `PIPIS_BIN` (default: `~/.local/share/pipis/bin/`).

optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         enable verbose ouput

available commands:
  {version,freeze,search,install,update,uninstall}
    version             show pipis version
    freeze              output installed packages in requirements format
    search              search for PyPI packages whose name or summary
                        contains <query>
    install             install packages
    update              update packages
    uninstall           uninstall packagesYou can also invoke--helpon each commands.Install package(s)$ pipis install ansible
Package 'ansible' will be installed.
Do you want to continue [y/N]? y
Successfully installed ansibleUnattended install package(s)$ pipis install -y awscli
Successfully installed awscliUpdate package(s)$ pipis update ansible
Package 'ansible' will be updated.
Do you want to continue [y/N]? y
Successfully updated ansibleList installed packages$ pipis freeze
ansible==2.8.1
awscli==1.16.181
gcal2redmine==0.2.0
gitignore-cli==1.0.3
pipenv==2018.11.26
pipis==2.0.0
poetry==0.12.16
speedtest-cli==2.1.1
tldr==0.4.4
youtube-dl==2019.6.8Uninstall package(s)$ pipis uninstall ansible
Package 'ansible' will be uninstalled.
Do you want to continue [y/N]? y
Successfully uninstalled ansibleCreditsArmin Ronacher: the author of pipsi, for the inspirationNicolas Karolak: myself, the author of pipisChangelogAll notable changes to this project will be documented in this file.The format is based onKeep a Changelogand this project adheres toSemantic Versioning.Unreleased2.0.0AddedAddsearchcommand, to search packages on PyPI.ChangedComplete rewrite with argparse (removing depency to Click)RemovedThelistcommand, it had no real purposeThe possibility to install multiple package at once, will be re-added laterThe possibility to upgrade all package withpipis update, will be re-added later1.5.0AddedAdd-Ior--ignore-installedoption oninstallandupdatecommands.Add-Uor--upgradeoption oninstallcommand.ChangedMove some portion of code into separate functions to make the code easier to read.Updating an uninstalled package will install it, instead of failing.While creating symlinks, if the target already exists it will be replaced, instead of failing.FixedFix some linting warnings.1.4.0AddedInstall option-sor--system-site-packagesto give access to system site-packages to venv.Allow to specify package version (ex:ansible==2.4.0).Add a package into a package's venv with-dor--dependencyoption.Add-vor--verboseoption oninstallandupdatecommands.1.3.1FixedRefactor environment variable retrieval.1.3.0AddedDestination venv directory can be set through the environment variablePIPIS_VENV.Destination bin directory can be set through the environment variablePIPIS_BIN.ChangedFormatlistoutput like pip's one.FixedRemove venv created in case of inexistant package install attempt.Raise error when the package is a library (has no user script).Raise error when the symlink destination already exists.Raise error when trying to update an inexistant package.1.2.0AddedAddfreezecommand to output installed packages in requirements format.Add command to show pipis version.ChangedShow version beside package name inlistcommand.Improve existing and add new help texts.Add short from-yfor--yesargument.Factorize duplicate code.FixedFix pep8 and pylint warnings.1.1.0- 2018-05-18AddedAdd-r/--requirementfor theremovecommand to allow passingrequirements.txtfile.Add-r/--requirementfor theupdatecommand to allow passingrequirements.txtfile.Add-r/--requirementfor theinstallcommand to allow passingrequirements.txtfile.ChangedChange output information format fo when package are already/not installed.1.0.1- 2018-05-17FixedReloadsys.pathand clean it after to avoid issue with "distribution not found".1.0.0- 2018-05-17AddedEverything.