Skip to content
/ pvw Public

A lightweight python venv wrapper for virtual environment management.

License

Notifications You must be signed in to change notification settings

hagemon/pvw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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
  • python3-venv

Important: In Linux, you should firstly install python3-venv by using:

sudo apt install python3-venv

If you receive warning like /home/USERNAME/.local/bin is not in PATH

you should add

export PATH=/home/USERNAME/local/bin:$PATH

in shell configuration file (e.g. .bashrc, .zshrc)

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)

About

A lightweight python venv wrapper for virtual environment management.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published