Description
shiv is a command line utility for building fully self-contained Python zipapps as outlined in PEP 441, but with all their dependencies included! shiv's primary goal is making distributing Python applications fast & easy. But it can also be used to ship a bunch of dependencies for your scripts, all bundled in a single easily deployed ZIP file.
shiv alternatives and similar packages
Based on the "Command-line Tools" category.
Alternatively, view shiv alternatives based on common mentions on social networks and blogs.
-
httpie
๐ฅง HTTPie for Terminal โ modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more. -
Python Fire
Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object. -
cookiecutter
A cross-platform command-line utility that creates projects from cookiecutters (project templates), e.g. Python package projects, C projects. -
Gooey
Turn (almost) any Python command line program into a full GUI application with one line -
mycli
A Terminal Client for MySQL with AutoCompletion and Syntax Highlighting. -
python-prompt-toolkit
Library for building powerful interactive command line applications in Python -
HTTP Prompt
An interactive command-line HTTP and API testing client built on top of HTTPie featuring autocomplete, syntax highlighting, and more. https://twitter.com/httpie -
PathPicker
PathPicker accepts a wide range of input -- output from git commands, grep results, searches -- pretty much anything. After parsing the input, PathPicker presents you with a nice UI to select which files you're interested in. After that you can open them in your favorite editor or execute arbitrary commands. -
asciimatics
A cross platform package to do curses-like operations, plus higher level APIs and widgets to create text UIs and ASCII art animations -
percol
adds flavor of interactive filtering to the traditional pipe concept of UNIX shell -
kube-shell
Kubernetes shell: An integrated shell for working with the Kubernetes -
iredis
Interactive Redis: A Terminal Client for Redis with AutoCompletion and Syntax Highlighting. -
litecli
CLI for SQLite Databases with auto-completion and syntax highlighting -
try
Dead simple CLI tool to try Python packages - It's never been easier! :package: -
yaspin
A lightweight terminal spinner for Python with safe pipes and redirects ๐ -
Argh
An argparse wrapper that doesn't make you say "argh" each time you deal with it. -
Pinboard.py
A full-featured Python wrapper (and command-line utility) for the Pinboard API. Built by the makers of Pushpin for Pinboard. -
cliff
Command Line Interface Formulation Framework. Mirror of code maintained at opendev.org. -
R3CON1Z3R
R3con1z3r is a lightweight Web information gathering tool with an intuitive features written in python. it provides a powerful environment in which open source intelligence (OSINT) web-based footprinting can be conducted quickly and thoroughly. -
python3-nmap
A python 3 library which helps in using nmap port scanner. This is done by converting each nmap command into a callable python3 method or function. System administrators can now automatic nmap scans using python -
App Store Connect Api
Python wrapper around Apple App Store Api -
SubGrab
SubGrab is a utility that allows you to automate subtitles downloading for your media files. -
spline
Spline is a tool that is capable of running locally as well as part of well known pipelines like Jenkins (Jenkinsfile), Travis CI (.travis.yml) or similar ones. -
GitHub PR Cleaner
Clear merged pull requests ref (branch) on GitHub -
Focus Phase
A simple yet powerful timer and time tracker from the command line. https://ammar1y.github.io/Focus-Phase/
Access the most powerful time series database as a service
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of shiv or a related project?
Popular Comparisons
README
shiv
shiv is a command line utility for building fully self-contained Python zipapps as outlined in PEP 441, but with all their dependencies included!
shiv's primary goal is making distributing Python applications fast & easy.
๐ Full documentation can be found here.
sys requirements
- python3.6+
- linux/osx/windows
quickstart
shiv has a few command line options of its own and accepts almost all options passable to pip install
.
simple cli example
Creating an executable of flake8 with shiv:
$ shiv -c flake8 -o ~/bin/flake8 flake8
$ ~/bin/flake8 --version
3.7.8 (mccabe: 0.6.1, pycodestyle: 2.5.0, pyflakes: 2.1.1) CPython 3.7.4 on Darwin
-c flake8
specifies the console script that should be invoked when the executable runs, -o ~/bin/flake8
specifies the location of the generated executable file and flake8
is the dependency that should be installed from PyPI.
Creating an interactive executable with the boto library:
$ shiv -o boto.pyz boto
Collecting boto
Installing collected packages: boto
Successfully installed boto-2.49.0
$ ./boto.pyz
Python 3.7.4 (v3.7.4:e09359112e, Jul 8 2019, 14:54:52)
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> import boto
>>> boto.__version__
'2.49.0'
installing
You can install shiv by simply downloading a release from https://github.com/linkedin/shiv/releases or via pip
/ pypi
:
pip install shiv
You can even create a pyz of shiv using shiv!
python3 -m venv .
source bin/activate
pip install shiv
shiv -c shiv -o shiv shiv
developing
We'd love contributions! Getting bootstrapped to develop is easy:
git clone [email protected]:linkedin/shiv.git
cd shiv
python3 -m venv venv
source ./venv/bin/activate
python3 -m pip install --upgrade build
python3 -m build
python3 -m pip install -e .
Don't forget to run and write tests:
python3 -m pip install tox
tox
To build documentation when you changed something in docs
:
python3 -m pip install -r docs/requirements.txt
sphinx-build docs build/html
gotchas
Zipapps created with shiv are not guaranteed to be cross-compatible with other architectures. For example, a pyz
file built on a Mac may only work on other Macs, likewise for RHEL, etc. This usually only applies to zipapps that have C extensions in their dependencies. If all your dependencies are pure python, then chances are the pyz
will work on other platforms. Just something to be aware of.
Zipapps created with shiv will extract themselves into ~/.shiv
, unless overridden via
SHIV_ROOT
. If you create many utilities with shiv, you may want to occasionally clean this
directory.
acknowledgements
Similar projects:
Logo by Juliette Carvalho
*Note that all licence references and agreements mentioned in the shiv README section above
are relevant to that project's source code only.