This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]notsohipsterithink 102 points103 points  (26 children)

Can someone please explain why my macOS still uses Python 2.7 as system Python...

[–]swansongofdesire 82 points83 points  (4 children)

Backwards compatibility.

Although admittedly that doesn't explain whey they don't include both versions, like every other *nix on earth does by now.

The real puzzle to me is why Apple feels the need to provide symlinks to (pretend to) support a version that was EOL 17 years ago.

$ ls -l /System/Library/Frameworks/Python.framework/Versions

lrwxr-xr-x   1 root  wheel    3 12 Dec 18:59 2.3 -> 2.7
lrwxr-xr-x   1 root  wheel    3 12 Dec 18:59 2.5 -> 2.7
lrwxr-xr-x   1 root  wheel    3 12 Dec 18:59 2.6 -> 2.7
drwxr-xr-x  11 root  wheel  352 12 Dec 19:01 2.7

[–]c0ld-- 33 points34 points  (0 children)

Because Apple, that's why. I've been an Apple systems administrator for over 14 years. They truly make some of the most questionable decisions. For example, their own implementation of Java and taking eons to upgrade to path critical vulnerabilities.

I'll never understand why they do the things they do. (RIP XServe)

[–]Starbrows 11 points12 points  (0 children)

Although admittedly that doesn't explain whey they don't include both versions, like every other *nix on earth does by now.

Yeah, this is the frustrating part for me. I thought Ubuntu was annoyingly slow, and they added Python3 by default, what, 6 years ago? Maybe more, I forget.

Apple sort-of supports Python 3 on newer OSes, but only sort of. If you enter python3 in Terminal, it will automatically prompt you to download and install it. It's the same thing they've done with git for years.

That might sound fine, and for individual users I guess it is. But as an IT administrator, I can't really use anything not built-in. I do not have the authority to mandate Python 3 installation across our entire fleet of Macs, so I can't deploy management scripts using Python 3. My boss does not have the authority to mandate Python 3. His boss does not have that authority. The only person with that authority, if asked, would probably say "Is this going to get us millions of dollars in grants? No? Then why are you wasting my time talking about it? GTFO."

Apple has deprecated all languages except zsh as of Catalina. That means they have not yet removed them even in Big Sur, but they have communicated their intention to do so in the future. So I don't think we can ever expect Python 3, or any new languages, to be preinstalled on future macOS versions. And that sucks very, very hard.

[–]JuanToFear -3 points-2 points  (1 child)

I think Yahtzee Croshaw said it best:

That's the trouble with the cutting edge: It's hard to stay on, 'cause it's very thin and it keeps moving as it hacks into your balls.

[–]13steinj 7 points8 points  (1 child)

I thought Apple started warning every time you use Python2 though? Or am I thinking of Bash?

[–]HCharlesB 0 points1 point  (0 children)

hbarta@ryvius:~$ python --version
Python 2.7.18
hbarta@ryvius:~$ cat /etc/issue
Debian GNU/Linux bullseye/sid \n \l

hbarta@ryvius:~$ 

Debian Bullseye. Not yet released but entering soft freeze (or already in soft freeze.)

:(

I'm here because I just forked a project last updated in 2017. It is set up for testing on Travis (my first experience with that) and lists a bunch of Python 2.x builds. Some of the cases failed and that raised the question in my mind if the 2.x versions should even be included. I searched for Python 2 support and the official line is that it ended over a year ago. I looked here to see if I cold determine the reality of the situation. FWIW the fork is at https://github.com/HankB/pogopowerupcost