Skip to main content

a lightweight python venv wrapper to manage venvs

Project description

pvw

A lightweight (~10kB) python venv wrapper for virtual environment management.

Create venv or standard project in simple command line tool.

Based on the built-in venv since python 3.6.

Pre-requirement

  • Python >= 3.6
  • python-venv

Installation

pip install pvw

Usage

You can either start a raw project with pvw init, or just manage virtual envs with core commands .

Start a project

pvw init PROJ_NAME

Initialize a python project, with a simple template as:

|- pyproject.toml
|- src
    |- PROJ_NAME
          |- cli.py
|- README.md
|- License

You can decide whether creating a specific env for this project.

Configuration

Get or set the directory venv_path where venvs are stored in default.

pvw config get venv_path # get venv_path variable
pvw config set venv_path=PATH/TO/VENV # set venv_path

Core commands

We use base as a demo

Show

# show name, path, and size(optional) of existing venvs.
> pvw ls [--show-size]

Name   Path                  Size
--------------------------------------
env1   C:\Users\venvs\env1   199.42MB
env2   C:\Users\venvs\env2   21.83MB
st     C:\Users\venvs\st     313.99MB
v2     C:\Users\venvs\v2     21.86MB
v3     C:\Users\venvs\v3     21.85MB

Create

# Create venv `base` in either way:
pvw create base  # in default venv path
pvw create ./base  # in current directory
pvw create /home/venvs/base  # in specific directory

Activate/deactivate

# For Windows
pvw activate base  # standard way
pvw base  # or a shorter way

deactivate  # exit
# For Linux/MacOS
source pvw activate base  # standard way
source pvw base  # or a shorter way

deactivate # exit

Copy or move

# copy or rename from a existing venv
pvw cp base dev  # copy `base` to a new venv `dev`
pvw mv dev foo  # rename `dev` to a new venv `foo`

Remove

# remove both `dev` and `foo`
pvw rm dev foo
# remove envs that starts with `test`
pvw rm test.*

Build From Source

Using Makefile

cd src/pvw
make
sudo make install

The executable binary pvw and pvw_py will be installed in your /usr/bin/ directory.

Using setuptools

pip install --upgrade build setuptools # skip if already installed
python -m build
pip install dist/pvw-x.x.x.tar.gz # x.x.x is the built version of pvw

To-do list

  • Simplify activate command in Linux/Mac OS
  • Enable setting default venv in terminal
  • Add unit tests
  • Support specific python version (if installed)

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

pvw-0.0.8.tar.gz (11.8 kB view details)

Uploaded Source

Built Distribution

pvw-0.0.8-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

Details for the file pvw-0.0.8.tar.gz.

File metadata

  • Download URL: pvw-0.0.8.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for pvw-0.0.8.tar.gz
Algorithm Hash digest
SHA256 8e5e6491fab8144f0810328facdd91e5fb6862fcae028b675c8ab4ab7e5818b6
MD5 6680f8550d802dd0d93ccd6d5dc97841
BLAKE2b-256 c50bf7c5a54dbc7e1b302ed3f569615fc3ca8746f59f74e5473e01c93b12daba

See more details on using hashes here.

File details

Details for the file pvw-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: pvw-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 12.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for pvw-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 5a1fc397e51e78228dadd29a4976aa638ecd2f5104cadea40af88904fbd7aa12
MD5 f64bdecce31811453041862fe1d63d76
BLAKE2b-256 26bf2d5af975921352ec055698a9640ca7d86895539b73de6050d4d58160cdeb

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