Package: autopip
autopipEasily install apps from PyPI and automatically keep them updated.autopipautomates the creation of a virtual environment usingvenv,
installs any Python package with scripts (i.e. app) from PyPI usingpip, and
atomically creates symlinks for installed scripts in/usr/local/binso you can easily use them. Each app version is
installed cleanly into its own virtual environment. Optionally, it can set up crontab entries to update apps
automatically (may require admin permission on macOS).Before starting, make sure your Python installation meets all the requirements – whileautopipcan install Python
apps that run on any Python version, it requires Python 3.6+ to run:curl -s https://raw.githubusercontent.com/maxzheng/autopip/master/etc/check-python.py | python3To installautopipto/usr/local/bin:sudo pip3 install autopipNo need to worry about tainting system Python install asautopiphas no install dependencies and never will.Alternatively, you can install it in a virtual environment – the last one that you will ever create manually for
installing Python apps:python3 -m venv ~/.virtualenvs/autopip
source ~/.virtualenvs/autopip/bin/activate
pip3 install autopipOptionally, create installation directories and chown to your user so thatautopipcan create symlinks in/usr/local/bin:sudo mkdir /usr/local/opt /usr/local/var
sudo chown -R $(whoami) /usr/local/*Now, you can easily install any apps from PyPI:$autopipinstallworkspace-toolsInstalling workspace-tools to /usr/local/opt/apps/workspace-tools/3.2.2
Updating symlinks in /usr/local/bin
+ wstOptionally use the--updateoption to update it daily via cron (may require admin permission on macOS):$autopipinstallworkspace-tools--updatedailyworkspace-tools is up-to-date
Adding to crontab (may require admin permission)
Daily auto-update enabled via cron service
Scripts are in /usr/local/bin: wstInstall paths are selected based on your user’s permission to write to/optor/usr/local/opt. If you do not have
permission for either, thenautopipwill install apps to your user home at~/.appswith script symlinks in~/bintherefore you will need to add~/binto your PATH env var to easily run scripts from installed apps.  To install
script symlinks to/usr/local/bin, either chown/chmod dirs in/usr/local/*to be writeable by your user as suggested
above or runautopipusingsudo(i.e. as root). To see why a particular path is selected, append--debugafterautopipwhen running it.To save typing a few letters, you can also use theappalias – short forautopip.$appinstallansible-hostmanagerInstalling ansible-hostmanager to /usr/local/opt/apps/ansible-hostmanager/0.2.3
Updating script symlinks in /usr/local/bin
+ ahTo install an app for a specific Python version, use the--pythonoption:$appinstallducktape--python3.7Installing ducktape to /usr/local/opt/apps/ducktape/0.7.3
Updating script symlinks in /usr/local/bin
+ ducktapeTo show currently installed apps and their scripts:$applist--scriptsansible-hostmanager  0.2.3   /usr/local/opt/apps/ansible-hostmanager/0.2.3
                             /usr/local/bin/ah
ducktape             0.7.3   /usr/local/opt/apps/ducktape/0.7.3
                             /usr/local/bin/ducktape
workspace-tools      3.2.2   /usr/local/opt/apps/workspace-tools/3.2.2      [updates daily]
                             /usr/local/bin/wstTo manually update all apps:$appupdateansible-hostmanager is up-to-date
ducktape is up-to-date
workspace-tools is up-to-dateTo uninstall:app uninstall ducktapeIf you need to use a private PyPI index, just configureindex-urlinpip.confasautopipusespipto install apps.To control versioning and uniform installations across multiple hosts/users, you can also define anautopipinstallation group using entry points. See example indeveloper-toolspackage.FAQCron jobs have a random minute set during install and runs hourly for all intervals.Up to two versions of an app is kept at a time.Links & Contact InfoPyPI Package:https://pypi.python.org/pypi/autopipGitHub Source:https://github.com/maxzheng/autopipReport Issues/Bugs:https://github.com/maxzheng/autopip/issuesFollow:https://twitter.com/MaxZhengXConnect:https://www.linkedin.com/in/maxzhengContact: maxzheng.os @t gmail.com