Isso deve ser fácil se você ainda tiver o Python 3.5 por perto:
$ pip3.5 list --user --format=freeze | xargs pip3.6 install --user
irá reinstalar todos os pacotes do site do usuário para o Python 3.6. As coisas ficam um pouco mais complicadas quando a instalação antiga do Python se foi (portanto, não há pip3.5
no seu caso), mas ainda nada que você não possa gerenciar. Antes de mais nada, verifique se o site do usuário ainda existe para que você tenha algo com o que trabalhar:
$ find ~/.local -type d -name "site-packages" | grep python3.5
/Users/hoefling/.local/lib/python3.5/site-packages
Agora use pkg_resources
para listar as distribuições disponíveis no site do usuário:
$ find ~/.local -type d -name "site-packages" | grep python3.5 | xargs python3.6 -c "import pkg_resources, sys; print(' '.join((f'{pkg.project_name}=={pkg.version}' for pkg in pkg_resources.find_distributions(sys.argv[1]))))"
wheel==0.30.0
O diretório do site do usuário será canalizado para a linha de código do Python que varrerá o diretório usando a função pkg_resources.find_distributions
(consulte Obtendo ou criando distribuições seção nos documentos) que é o mesmo que pip
usa sob o capô, IIRC. Acabei de adicionar alguma formatação para que você possa passar a saída para o novo pip3.6
na última iteração de estender o one-liner. O one-liner completo é:
$ find ~/.local -type d -name "site-packages" | grep python3.5 | xargs python3.6 -c "import pkg_resources, sys; print(' '.join((f'{pkg.project_name}=={pkg.version}' for pkg in pkg_resources.find_distributions(sys.argv[1]))))" | xargs pip3.6 install --user
pkg_resources
é parte do pacote setuptools
e já deve estar pré-instalado (pelo menos é o caso quando usamos os instaladores de link ). Caso contrário, instale setuptools
primeiro:
$ dnf install python3-setuptools