Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: How to Install Python on a Mac
6 points by DanielKehoe 10 months ago | hide | past | favorite | 7 comments
I recently began using Python for AI projects and found Rye, which is an all-in-one tool that replaces Pyenv, Pip, and Venv, for a more project-centered approach to Python development (like Ruby or JavaScript or Rust). As someone who habitually writes tutorials for beginners, I wrote a series of articles for my mac.install.guide site advocating setting up Python projects using Rye.

Am I leading beginners down the wrong path by suggesting Rye for Python tooling?

Beginners often encounter READMEs and tutorials that show `pip install something` as a first step. That led me to the error "Command not found: pip" [0] (so I wrote about that). Solving that led to the error "Command not found: python" [1] and I first tried the system Python installed with XCode Command Line Tools and then "brew install python" [2]. That led me to "Error: externally-managed-environment" [3] which is a recent safeguard to encourage Python users to use environment managers to avoid dependency conflicts from globally-installed packages. At that point, I realized that there are two different use cases for using Python, either standalone tools and applications, where it's best to "install Pipx" [4], or programming with Python, including installing Python packages, where there's need for a version manager, a package manager, and an environment manager. There's no built-in version manager (for that, you will "install pyenv" [5]) but Pip and Venv are a built-in package manager and environment manager, once you have Python installed. As a guide, I wrote about "Mac Python" [6] and how to "Update Python" [7].

This diagram [8] helped me understand which Python tools are used for version management, package management, and environment management. That's where I found Rye, an all-in-one tool that eliminates the need for Pyenv, Pip, Venv, and other tools. So I wrote about how to "install Python with Rye" [9] and how to "Use Rye" [10].

These are the articles that were most helpful in showing how to set up a Python development environment:

- https://blog.viraptor.info/post/python-dependency-management...

- https://justinmayer.com/posts/homebrew-python-is-not-for-you...

- https://blog.glyph.im/2023/08/get-your-mac-python-from-pytho...

For beginners, I feel Rye is a better choice (as a single tool) than a grab bag of multiple tools, but I heard there is some resistance to Rye in the Python community, as it's written in Rust and other people have already tried to improve the Python developer experience without achieving success.

Others have suggested asdf or mise (good choices for managing multiple languages), Docker (appropriate for collaboration on a complex project but overkill for simple, one-developer projects), and Nix (a lot to learn).

To wrap it all up, I wrote a freeCodeCamp article, "How to Install Python on a Mac" [11]. I'm sharing the links here for comments and feedback from those more experienced than I.

[0] "Command not found: pip" (https://mac.install.guide/python/command-not-found-pip)

[1] "Command not found: python" (https://mac.install.guide/python/command-not-found-python)

[2] "brew install python" (https://mac.install.guide/python/brew)

[3] "Error: externally-managed-environment" (https://mac.install.guide/python/externally-managed-environm...)

[4] "install Pipx" (https://mac.install.guide/python/pipx)

[5] "install pyenv" (https://mac.install.guide/python/install-pyenv)

[6] "Mac Python" (https://mac.install.guide/python/)

[7] "Update Python" (https://mac.install.guide/python/update)

[8] diagram https://alpopkes.com/posts/python/figures/venn_diagram.png

[9] "install Python with Rye" (https://mac.install.guide/python/install)

[10] "Use Rye" (https://mac.install.guide/python/use-rye)

[11] "How to Install Python on a Mac" (https://www.freecodecamp.org/news/how-to-install-python-on-a...)




I've been repeating again and again that everywhere, but the sweet spot for beginners is to stick to the boostrapping method that will lead to the least possible modes of failure.

Because I don't want to repeat it every time, I eventually wrote everything down, so know I can just link to it:

For installing Python: "Installing and running Python: the bare minimum you can get away with"

https://www.bitecode.dev/p/installing-python-the-bare-minimu...

To manage deps: "Back to basics with pip and venv":

https://www.bitecode.dev/p/back-to-basics-with-pip-and-venv

And how I justify those very steps: "Why not tell people to "simply" use pyenv, poetry, pipx or anaconda".

https://www.bitecode.dev/p/why-not-tell-people-to-simply-use

At this point it kinda feels like spamming, but honestly, there is too much noise out there, and those points don't come across enough. Especially since most dev are either too little or too much experienced to be helpful.


Show HN is for things you've made other people can try - that excludes reading material like tutorials, blog posts, etc - take a look at https://news.ycombinator.com/showhn.html


Thank you for the clarification and guidance. I will be aware when I post in the future.


pyenv + pip are tried and trusted. I would expect every tutorial they encounter will use them. So they're worth learning for that.

Rye is a great tool, but my issue with it is barely anyone uses it, and no tutorials or guides are going to use it. So when you read a README to install a package, you're going to see pip commands and have to figure things out yourself.


Good point. Beginners will need to know how to follow READMEs and tutorials.


brew install pyenv && pyenv install 3.12


I looked at that approach and it’s solid and well-supported. Comes down to a choice of multiple tools versus Rye as a single tool. Though you can say multiple tools are more Unix-like.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: