4 ms·
Show HN: How to Install Python on a Mac
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-difficulty-is-an-unhelpful-meme https://blog.viraptor.info/post/python-dependency-management...
- https://justinmayer.com/posts/homebrew-python-is-not-for-you/ https://justinmayer.com/posts/homebrew-python-is-not-for-you...
- https://blog.glyph.im/2023/08/get-your-mac-python-from-python-dot-org.html 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 https://mac.install.guide/python/command-not-found-pip)
[1] "Command not found: python" (https://mac.install.guide/python/command-not-found-python https://mac.install.guide/python/command-not-found-python)
[2] "brew install python" (https://mac.install.guide/python/brew https://mac.install.guide/python/brew)
[3] "Error: externally-managed-environment" (https://mac.install.guide/python/externally-managed-environment https://mac.install.guide/python/externally-managed-environm...)
[4] "install Pipx" (https://mac.install.guide/python/pipx https://mac.install.guide/python/pipx)
[5] "install pyenv" (https://mac.install.guide/python/install-pyenv https://mac.install.guide/python/install-pyenv)
[6] "Mac Python" (https://mac.install.guide/python/ https://mac.install.guide/python/)
[7] "Update Python" (https://mac.install.guide/python/update https://mac.install.guide/python/update)
[8] diagram
https://alpopkes.com/posts/python/figures/venn_diagram.png https://alpopkes.com/posts/python/figures/venn_diagram.png
[9] "install Python with Rye" (https://mac.install.guide/python/install https://mac.install.guide/python/install)
[10] "Use Rye" (https://mac.install.guide/python/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-mac/ https://www.freecodecamp.org/news/how-to-install-python-on-a...)
- smcleod 2y agobrew install pyenv && pyenv install 3.12
- DanielKehoe 2y agoI 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.
- deleted 2y ago[deleted]
- pvg 2y agoShow 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 https://news.ycombinator.com/showhn.html
- DanielKehoe 2y agoThank you for the clarification and guidance. I will be aware when I post in the future.
- odie5533 2y agopyenv + 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.
- DanielKehoe 2y agoGood point. Beginners will need to know how to follow READMEs and tutorials.
- BiteCode_dev 2y ago