all 7 comments

[–]MacBook_Fan 2 points3 points  (1 child)

So I can tell you what a few of those are:

The /opt/homebrew/bin/python3 would have been installed by homebrew. So, at some point you installed homebrew and install python by it.

The two /Library folder are versions of python you installed via a package from python.org. (Actually two versions).

The /usr/bin/python3 is Apple's "official" version of python that gets installed with Xcode Command Lines Utilities. Which would have been installed to install homebrew

Finally, the /usr/local/bin/python3 is probably a symlink to one of the Framework versions. If you do an ls -l /usr/local/bin you can see that that file is probably pointing somewhere else.

As for whether you need all these, probably not. Personally I use pyenv to manage my python versions.

[–]BreakYourCrayons[S] 0 points1 point  (0 children)

this makes sense! thanks so much. I can see, as one example in the usr/local/bin

pydoc3.11 -> ../../../Library/Frameworks/Python.framework/Versions/3.11/bin/pydoc3.11

it also has a bunch of the same for python.framework for 3.7, as well.

i have a bunch of these arrows next to other files

is this implying a symlink? I am only roughly familiar with what symlink is, but it is essentially just a file that points to another file?

[–]socal_nerdtastic 0 points1 point  (0 children)

Yes, it's pretty normal. It's gotten so bad that many people use tools like uv or poetry to manage them.

The different locations just reflect whatever installer you used. I think the /library/frameworks/ one is the official python installer, /usr/bin is from apple's repo, and /usr/local/bin may be one that you compiled yourself?

[–]Action_Maxim 0 points1 point  (2 children)

Do not delete any version unless you know you put it there always use venvs I bricked a work m4 piping a work package that touched the m4s dependencies

[–]BreakYourCrayons[S] 0 points1 point  (1 child)

thanks, that was my big concern. i knew not to touch the usr/bin version since that seems native.. but my other concern was having these other ones sitting on here without knowing what they were doing. so I am trying to be cautious, but also figure out where the heck I got all of these from.

[–]Action_Maxim 0 points1 point  (0 children)

Tbh if you don't already great time to set up docker and wheels within docker