Package virtual environments for redistribution
Project description
Venv-Pack
This is based on venv-pack but with lots of improvements added by mrmathematica. It has Windows support. Bin/Scripts generated by venv will work out-of-box.
Venv-pack is a command-line tool for packaging virtual environments for distribution. This is useful for deploying code in a consistent environment.
Supports virtual environments created using python3/venv. Venv is part of the python standard library.
Install from source
venv-pack is available on github and can always be installed from source.
pip install git+https://github.com/mrmathematica/venv-pack.git
Install from pypi
venv-pack is available on pypi as venv-pack2
.
pip install venv-pack2
Command-line Usage
One common use case is packing an environment on one machine to distribute to other machines as part of a deployment process.
On the source machine
Create venv, and then upgrade pip + setuptools first:
python -m venv venv
venv\Scripts\activate
python -m pip install -U pip setuptools
Python generates Windows .exe file such as pip.exe on the fly, so on Windows there is restriction that you want to fix a version of pip and setuptools at the beginning and stick with it. If needed, re-create new venv from a lock file. See pip-tools.
Install all your python packages, for example
pip install -r requirements.txt
Pack the current environment into my_env.zip
venv-pack -o env.zip
Pack an environment located at an explicit path into my_env.zip
venv-pack -p explicit\path\to\env -o env.zip
On the target machine
Unpack environment into directory my_env
md my_env
python -m zipfile -e venv.zip my_env\
All features of venv should keep working from my_env folder.
Caveats
This tool is new, and has a few caveats.
- Python is not packaged with the environment, but rather symlinked in the environment. On Windows python venv does so in a pyvenv.cfg file. This is useful for deployment situations where Python is already installed on the machine, but the required library dependencies may not be.
- The os type where the environment was built must match the os type of the target. This means that environments built on windows can’t be relocated to linux.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for venv_pack2-0.8.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9b2b5f9679d04d729e68232836b293ec077b0773338c5e3b683b9dc04967808 |
|
MD5 | f6247e70b611c5edde40f7d75478c226 |
|
BLAKE2b-256 | dc393aa532c37886162914743eabd666347df13573fea52c0d26ac3ec8bb7b15 |