https://github.com/daylinmorgan/viv
viv isn't venv
https://github.com/daylinmorgan/viv
pypi python venv
Last synced: 4 months ago
JSON representation
viv isn't venv
- Host: GitHub
- URL: https://github.com/daylinmorgan/viv
- Owner: daylinmorgan
- License: mit
- Created: 2022-12-20T05:22:53.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-07-15T21:06:29.000Z (over 1 year ago)
- Last Synced: 2025-05-12T19:13:25.700Z (5 months ago)
- Topics: pypi, python, venv
- Language: Python
- Homepage: https://viv.dayl.in/
- Size: 1.34 MB
- Stars: 5
- Watchers: 1
- Forks: 2
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![MIT License][license-shield]][license-url]
[![PYPI][pypi-shield]][pypi-url]
[](https://github.com/astral-sh/ruff)
[](https://github.com/psf/black)
[](https://pre-commit.com)
[![Conda][conda-shield]][conda-url]Try before you buy!
```sh
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](https://viv.dayl.in) or the [examples](https://github.com/daylinmorgan/viv/tree/main/examples) to get started.
## Setup
Run the below command to install `viv`.
```sh
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`.```sh
export PYTHONPATH="$PYTHONPATH:$HOME/.local/share/viv"
```### Pypi (Not Recommended)
```sh
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:
```sh
viv run frogmouth -- gh daylinmorgan/viv
```As a python module:
```python
__import__("viv").use("click")
```As an app installer:
```sh
viv shim ruff
```To remove all `vivenvs` you can use the below command:
```sh
viv env remove $(viv list -q)
```To remove `viv` altogether you can use the included `purge` command:
```sh
python3 <(curl -fsSL viv.dayl.in/viv.py) manage purge
```## Equivalent commands from alternatives
### [pip-run](https://github.com/jaraco/pip-run)
```sh
pip-run cowsay -- -m cowsay "moove over, pip-run"
python3 <(curl -fsSL viv.dayl.in/viv.py) run cowsay -- "moove over, pip-run"
``````sh
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](https://github.com/pypa/pipx/)
```sh
pipx install pycowsay
viv shim pycowsay
``````sh
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 (30LOC)
`--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 and pip.
See [examples/black](https://github.com/daylinmorgan/viv/blob/dev/examples/black)
for output of the below command.`viv freeze` also supports `--standalone`.
```sh
python3 <(curl -fsSL viv.dayl.in/viv.py) shim black -o ./black --standalone --freeze
```[conda-shield]: https://img.shields.io/conda/vn/conda-forge/viv
[conda-url]: https://anaconda.org/conda-forge/viv
[pypi-shield]: https://img.shields.io/pypi/v/viv
[pypi-url]: https://pypi.org/project/viv
[stars-shield]: https://img.shields.io/github/stars/daylinmorgan/viv.svg
[stars-url]: https://github.com/daylinmorgan/viv/stargazers
[issues-shield]: https://img.shields.io/github/issues/daylinmorgan/viv.svg
[issues-url]: https://github.com/daylinmorgan/viv/issues
[license-shield]: https://img.shields.io/github/license/daylinmorgan/viv.svg
[license-url]: https://github.com/daylinmorgan/viv/blob/main/LICENSE