Os pacotes Python são específicos para uma versão do Python. Cada versão do Python tem sua própria biblioteca de pacotes, isolado das bibliotecas de outras versões no nível do sistema de arquivos. Pacotes instalados para uma biblioteca não estarão disponíveis para outra.
Então, quando você instala uma nova versão do Python, você terá que instalar em sua biblioteca todos os pacotes que você precisa, mesmo se você os instalou com a versão anterior. Isso também significa que os pacotes instalados anteriormente permanecem disponíveis com a versão anterior do Python.
Por fim,
É recomendado instalar o Django e suas dependências em virtualenv
.
Isso não salvará você da "dor" de reinstalar as dependências quando você alterar a versão,
Esta é apenas uma boa medida para evitar poluir o seu sistema com pacotes que são apenas necessários pelo Django, e também permite ter múltiplas versões do Django e suas dependências de forma independente.
E quando eu digo "dor" de reinstalar dependências,
quando segue boas práticas, não é para ser uma dor.
As dependências devem ser declaradas em um arquivo requirements.txt
na raiz do projeto e a reinstalação de tudo deve ser uma questão de pip install -r requirements.txt
.