Skip to main content

viv isn't venv

Project description

Stargazers Issues MIT License PYPI Ruff Black pre-commit Conda

Logo

viv isn't venv

cli screenshot

Documentation

Try before you buy!

python3 <(curl -fsSL viv.dayl.in/viv.py) run frogmouth -- gh daylinmorgan/viv

Viv is a standalone dependency-free venv creator (just needs python + pip). Viv helps you ignore silly things like managing temporary or rarely used virtual environments, while still unleashing the full power of python scripting with it's entire ecosystem at your disposal.

Viv's uncompromising insistence on portability means that it will always, only use the standard library and never exceed a single script.

See the documentation or the examples to get started.

Setup

Run the below command to install viv.

python3 <(curl -fsSL viv.dayl.in/viv.py) manage install

To access viv from within scripts you should add its location to your PYTHONPATH. By default viv will be installed to $XDG_DATA_HOME/viv or ~/.local/share/viv; you can customize this with --src.

export PYTHONPATH="$PYTHONPATH:$HOME/.local/share/viv"

Pypi (Not Recommended)

pip install viv

Why is this not recommended? Mainly because viv is all about hacking your sys.path. Placing it in its own virtual environment or installing in a user site directory may complicate this endeavor.

Usage

In any Python script with external dependencies you can add this line to automate vivenv creation and installation of dependencies.

As a cli:

viv run frogmouth -- gh daylinmorgan/viv

As a python module:

__import__("viv").use("click")

As an app installer:

viv shim ruff

To remove all vivenvs you can use the below command:

viv env remove $(viv list -q)

To remove viv altogether you can use the included purge command:

python3 <(curl -fsSL viv.dayl.in/viv.py) manage purge

Equivalent commands from alternatives

pip-run

pip-run cowsay -- -m cowsay "moove over, pip-run"
python3 <(curl -fsSL viv.dayl.in/viv.py) run cowsay -- "moove over, pip-run"
python -m pip-run requests -- -c "import requests; print(requests.get('https://pypi.org/project/pip-run').status_code)"
python -m viv run requests -b python -- -c "import requests; print(requests.get('https://pypi.org/project/viv').status_code)"

pipx

pipx install pycowsay
viv shim pycowsay
pipx run https://gist.githubusercontent.com/cs01/fa721a17a326e551ede048c5088f9e0f/raw/6bdfbb6e9c1132b1c38fdd2f195d4a24c540c324/pipx-demo.py
python3 <(curl -fsSL viv.dayl.in/viv.py) run \
  -s https://gist.githubusercontent.com/cs01/fa721a17a326e551ede048c5088f9e0f/raw/6bdfbb6e9c1132b1c38fdd2f195d4a24c540c324/pipx-demo.py

Bonus: use viv with just standalone snippet (37LOC)

--standalone will auto-generate a mini-function version of viv to accomplish the same basic task as using a local copy of viv. After generating this standalone shim you can freely use this script across Unix machines which have Python > 3.8. See examples/black for output of the below command.

viv freeze also supports --standalone.

python3 <(curl -fsSL viv.dayl.in/viv.py) shim black -o ./black --standalone --freeze

Project details


Download files

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

Source Distribution

viv-2024.1005.tar.gz (36.4 kB view details)

Uploaded Source

Built Distribution

viv-2024.1005-py3-none-any.whl (34.6 kB view details)

Uploaded Python 3

File details

Details for the file viv-2024.1005.tar.gz.

File metadata

  • Download URL: viv-2024.1005.tar.gz
  • Upload date:
  • Size: 36.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for viv-2024.1005.tar.gz
Algorithm Hash digest
SHA256 a0f49d7a51d2952a8d317554c0e4a7673d232a894698381ea0dfafd1ba8e19f4
MD5 0957a8ca0377077678e5d85d154b8183
BLAKE2b-256 4a42d1afe86649f4cec8011d2d1b17ff772ce417ebf358be61d8a23593183e48

See more details on using hashes here.

File details

Details for the file viv-2024.1005-py3-none-any.whl.

File metadata

  • Download URL: viv-2024.1005-py3-none-any.whl
  • Upload date:
  • Size: 34.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for viv-2024.1005-py3-none-any.whl
Algorithm Hash digest
SHA256 b0e6db8fec975d11e51b06c9e47bc16354c31a00887133ce9969ac52ed3f061b
MD5 1172600fe4453ee6728b8f35fb79dda2
BLAKE2b-256 fdb944e3c157114ccb88de02e7620503127aa720fd0b8024dae1d3c56020fbba

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page