Why are there three pythons in the system?
root@mowa219-gjp4-8570p-freebsd:~ # pkg info -x python3
python3-3_3
python37-3.7.12
python38-3.8.12
python39-3.9.7
root@mowa219-gjp4-8570p-freebsd:~ # pkg autoremove
harfbuzz-2.9.1 is locked and may not be modified
harfbuzz-icu-2.9.1 is locked and may not be modified
Checking integrity... done (0 conflicting)
Nothing to do.
root@mowa219-gjp4-8570p-freebsd:~ #
They are. That's why you can install multiple different versions without conflicting with each other.These really need to be put in subdirectories it's a nuisance having so many with minor changes.
pkg upgrade
and not running pkg autoremove
after it. The default Python moved from 3.6 to 3.7 to 3.8, if you don't clean up after an upgrade you're going to be left with a bunch of unnecessary dependencies installed.Why are there three pythons in the system?
One for each life?That's why I got nine of them.
No. This is simply poor engineering practice. Languages like Perl and Lua very rarely have serious backwards compatibility problems. The Python Steering Committee learned the wrong lesson from the Python 2 -> 3 fiasco, and has been introducing breaking changes in every dot-release. It seems it has finally caught up with them if you read the PEP I linked in my last post.This is a general, inherent problem of scripting languages.
DEFAULT_VERSIONS+=python=3.8
DEFAULT_VERSIONS+=python3=3.8
lang/python2
lang/python27
lang/python36
lang/python37
This is nice, but that does add to the list of admin chores to update the default version of Python from time to time - in the correct place.To avoid problems i have in make.conf
And in blacklistCode:DEFAULT_VERSIONS+=python=3.8 DEFAULT_VERSIONS+=python3=3.8
Code:lang/python2 lang/python27 lang/python36 lang/python37
Because Python sucks?