pyv is an utility to manage python distributions and related virtualenvs
% pyv l
# distributions
 from_path:Python 3.6.6:/home/thomas/local/pyv/venvs/default/bin
 Python-2.7.14:Python 2.7.14:/home/thomas/local/pyv/distributions/Python-2.7.14
 Python-3.6.8:Python 3.6.8:/home/thomas/local/pyv/distributions/Python-3.6.8
 Python-3.7.0:Python 3.7.0:/home/thomas/local/pyv/distributions/Python-3.7.0
*Python-3.7.2:Python 3.7.2:/home/thomas/local/pyv/distributions/Python-3.7.2
# virtualenvs
*default:Python 3.6.8:/home/thomas/local/pyv/venvs/default
 EasyAVR:Python 3.6.8:/home/thomas/local/pyv/venvs/EasyAVR
 test:Python 3.6.8:/home/thomas/local/pyv/venvs/test
create venv ($1) symlink for the current or specified pyv venv ($2).
usage is : pyv link [venv target name] [pyv venv name]
- venv target name, by default is venv
 - pyv venv name, by default is the current pyv virtualenv
 
% pyv l
[...]
*test:[....]
[...]
% pyv link
% ls -l
venv -> /home/thomas/local/pyv/venvs/test
% pyv link .env
% ls -l
.env -> /home/thomas/local/pyv/venvs/test
venv -> /home/thomas/local/pyv/venvs/testYou can use custom distribution that can be used to build Python with.
For example, during build process, you can force the openssl distribution to use, by setting the PYV_BUILD_DISTS variable.
After a build of openssl:
./config --prefix=/usr/local/openssl-1.1.1v --openssldir=/usr/local/openssl-1.1.1v/ssl
make
make installYou can use the custom openssl build with:
PYV_BUILD_DISTS=/usr/local/openssl-1.1.1v pyv build 3.9.18To build with many specific distribution you can separate each custom lib with a ':' :
PYV_BUILD_DISTS=/usr/local/openssl-1.1.1v:/custom/path/sqlite-3440000 pyv build 3.9.18