pyenv virtualenv [source_env] [new_env]
pyenv activate [new_env]
pip install ipykernel
python -m ipykernel install [--user] [--name <machine-readable-name>] [--display-name <"User Friendly Name">]
# The --name value is used by Jupyter internally. These commands will overwrite any existing kernel with the same name. --display-name is what you see in the notebook menus.