(This is a reminder to myself, and maybe a help for someone else who might be in the same situation as me. The purpose was to be able to lint documentation I’m trying to update for the pip project work.)
This applies to installing “the latest” Python on Mac OS X 10.15.6.
I’ve used this helpful How-TO. Everything worked until the very end where brew couldn’t create a necessary directory:
Permission denied @ dir_s_mkdir - /usr/local/Frameworks
(no idea why!)
==> Summary
🍺 /usr/local/Cellar/openssl@1.1/1.1.1h: 8,067 files, 18.5MB
==> Installing python@3.9
==> ./configure --prefix=/usr/local/Cellar/python@3.9/3.9.0_1 --enable-ipv6 --datarootdir=/usr/local/Cellar/python@3.9/3.9.0_1/share --datadir
==> make
==> make install PYTHONAPPSDIR=/usr/local/Cellar/python@3.9/3.9.0_1
==> make frameworkinstallextras PYTHONAPPSDIR=/usr/local/Cellar/python@3.9/3.9.0_1/share/python@3.9
Error: An unexpected error occurred during the `brew link` step
The formula built, but is not symlinked into /usr/local
Permission denied @ dir_s_mkdir - /usr/local/Frameworks
Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks
I reran install python and got:
bernard@computer-number-6 ~ % brew install python
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/cask).
==> Updated Casks
geekbench
Warning: python@3.9 3.9.0_1 is already installed, it's just not linked
You can use `brew link python@3.9` to link this version.
Solution (hack?)
The solution was to create the /usr/local/Framworks directory manually:
bernard@computer-number-6 ~ % sudo mkdir /usr/local/Frameworks
Then change the owner and group to mirror other directories (bernard:admin)
bernard@computer-number-6 ~ % sudo chown bernard /usr/local/Frameworks
bernard@computer-number-6 ~ % sudo chgrp admin /usr/local/Frameworks
bernard@computer-number-6 ~ % ls -la /usr/local/
total 0
drwxr-xr-x 17 root wheel 544 11 Nov 12:01 .
drwxr-xr-x@ 11 root wheel 352 12 Dec 2019 ..
-rw-r--r-- 1 root wheel 0 18 Sep 2019 .com.apple.installer.keep
drwxrwxr-x 3 bernard admin 96 1 Apr 2019 Caskroom
drwxrwxr-x 63 bernard admin 2016 11 Nov 11:39 Cellar
drwxr-xr-x 2 bernard admin 64 11 Nov 12:01 Frameworks
And finally run the brew link command from above:
bernard@computer-number-6 ~ % brew link python@3.9
Linking /usr/local/Cellar/python@3.9/3.9.0_1... 5 symlinks created
bernard@computer-number-6 ~ %
And then I could start what I wanted to actually do. 🙂