I’ve just installed Python 3.10 on Windows 10 and none of my scripts are working. For instance, when doing jupyter notebook
I get
'jupyter' is not recognized as an internal or external command, operable program or batch file.
I’ve been using Python 3.9 and all the scripts are still located in C:Program FilesPython39Scripts
. However, there is nothing in C:Program FilesPython310Scripts
(besides pip
).
As a first attempt to solve the problem, I uninstalled Python 3.10 leaving only 3.9. But this didn’t help – meaning that installing a newer Python version will brick your entire developing framework!
Question:
- What is the optimal way to get everything back operational, do I have to migrate everything from 3.9 directories to 3.10 directories? I.e. would it suffice to just copy over the content of the
Scripts
folder to the newer version or are there more folders scattered about? - And what about all the customizations done to packages, e.g. user settings in
Jupyter
, how can they be preserved/migrated?
I’m a little surprised that Python doesn’t handle this issues automatically, i.e. keep itself “stateless” and save all packages into a separate (“stateful”) user folder, then just automatically add this user folder to the Python path. Isn’t it wildly irresponsible to have updates brick the entire development framework?
The way it is handled now seems like a productivity killer. I don’t want to reinstall and reconfigure my entire code base, all packages, dependencies, settings etc. every time there is a new Python version. Surely there must be an “orthodox” way how this is dealt with properly?
Advertisement
Answer
Okay, I can report a partial success in rescuing my working system: Uninstalling the newer Python version, removing all newly added PATH entries and rebooting seems at least to get Jupyter back operational.
This means that installing newer Python version will only soft-brick your system. Removing updates may restore the functioning of your old version. Maybe this will help somebody struggling with the same problem.
This doesn’t solve the issue of updating and migrating your packages – what is the proper, canonical, orthodox way for “moving your stuff”?