Para que possamos criar um ambiente isolado para um projeto python, onde faremos instalações de módulos que não serão usados por outro projetos, ou mesmo que tenham versões diferentes, ou até mesmo para evitarmos problemas com a versão python que possivel está instalada por default no sistema operacional(linux, mac), usamos o venv para criar esse ambiente isolado.
Dessa forma temos uma cópia do python no diretório do projeto, e é esse python que será usado para executar nossos scripts e onde também ficarão instalados possíveis módulos que forem instalados para esse projeto.
Para isso execute o comando no diretório raiz do projeto:
python -m venv venv
Assim estamos executando o módulo venv do python, e o segundo venv é o nome do ambiente virtual que estamos criando, por padrão podemos deixar venv mesmo.
Feito isso, no diretório do seu projeto, terá um novo diretório chamado venv que fez uma cópia do python padrão do seu PATH.
Agora para que o seu projeto passe a "olhar" para o diretório venv, execute:
source venv/bin/activete
Agora toda vez que executarmos o python dentro desse diretório estamos executando o python desse diretório.
Assim como se instalarmos outros módulos do python eles serão instalados nesse diretório do python.
pip install flask
Para voltar a usar o python do seu PATH, execute:
deactivate
E lembre-se de que toda vez for para o diretório do projeto em um novo terminar, executar o comando para ativar o venv.