![](https://programming.dev/pictrs/image/8b78e395-74d6-4122-acf1-65b9d994d68f.jpeg)
![](https://programming.dev/pictrs/image/1d99f7cb-50e7-4994-94c4-fd23f30209b7.png)
The convention
That’s one convention. I don’t like it, I prefer to keep my venvs elsewhere. One reason is that it makes it simpler to maintain multiple venvs for a single project, using a different Python version for each, if I ever want to. It shouldn’t matter to anyone else, as it’s my environment, not some aspect of the shared repo. If I ever needed it there for some reason, I could always ln -s $VIRTUAL_ENV .venv
.
Learn pyenv
I have used pyenv. It’s fine. These days I use mise instead, which I prefer. But neither of them dictate how I create and store venvs.
Shell scripts within Python packages is depreciated
I don’t understand if what you’re referencing relates to my comment.
As someone else said, setting less’ jump value is helpful.
Another tool I use, mostly for the zshall manpage, is https://github.com/kristopolous/mansnip