Quando iniciamos um projeto em Python é importante mantermos os módulos e frameworks em um ambiente virtual, é que no nosso projeto por vezes podemos necessitar de uma versão especifica de um módulo ou framework. garantindo assim que a nossa aplicação possui todos os requisitos necessários. Para cada projeto devemos criar o nosso ambiente virtual.
Para criarmos o nosso ambiente virtual devemos primeiro instalar o módulo virtualenv:
pip install virtualenv
Após a instalação do módulo virtualenv, vamos criar uma pasta para o nosso novo projeto e dentro da pasta a partir da consola ou linha de comandos, executamos o seguinte comando (python -m venv qualquer_nome_abreviado):
python -m venv venv
ou
python -m venv tutorial_venv
Após ter-se executado o comando acima só temos que ativar o nosso ambiente virtual no caso de usarmos editores:
source venv/Scripts/activate

No caso da utilização de um IDE (Integrated Development Environment) a grande maioria destes (Pycharm, VS Code) conseguem detectar o ambiente virtual.
Após termos o nosso ambiente ativado podemos adicionar os módulos ou frameworks para o nosso projeto e podemos verificar quais os que estão instalados para um projeto especifico com o comando pip list:

Para desativar o ambiente virtual, pasta só digitar:
deactivate
Após desactivarmos o ambiente virtual e verificarmos de seguida os módulos instalados, veremos que estes são diferentes.

Para mais informações sobre virtualenv pode-se consultar a documentação Python e também a documentação virtualenv.
Como trocar dois números em Python sem o recurso de uma terceira variável?
a = 10 b = 20 print(f'a = {a} and b = {b}') # a = 10 and b = 20 a,b = b,a print(f'a = {a} and b = {b}') # a = 20 and b = 10