Upgraded Python; Do I have to reinstall all site-packages manually?

Python 3.5 was replaced by Python 3.6. But you still have the backup option of using python 3.5.

If you want to use python 3.6 you will have to reinstall all pip packages again for python 3.6. And it makes sense.

Say you were changing from 2.7 to 3.5. You would want to preserve both the environments separately. Hence 3.6 environment is different from 3.5.

A quick way to do this would be to pip freeze for 3.5 and then install those dependencies for 3.6.

pip freeze > reqs.txt

upgrade

pip install -r reqs.txt

Since you don't have this option anymore, first try and list all packages in your python3.5

for that you can install pip3.5 as answered by @kabanus.

sudo apt-get install python3=3.5.1*
sudo python3.5 easy_install.py pip

Also it's advised to use virtual environment per project so you can maintain separate environments for each of them.


I just hit the same problem upgrading from Python 3.6 to Python 3.7, I forgot to run pip freeze before I upgraded to Python 3.7. The solution that worked is to specify the --path option as the old site-packages/ directory (which was not deleted):

pip3 freeze --path /usr/local/lib/python3.6/site-packages/ > python3.6_requirements.txt
pip3 install -r python3.6_requirements.txt

Tags:

Python

Pip