Brew Switch



This page describes how Python is handled in Homebrew for users. See Python for Formula Authors for advice on writing formulae to install packages written in Python.

The fusee-gelee exploit allows for a full system takeover; the exploit runs before even the normal bootloader code, meaning anything about the normal Switch operating system (named Horizon, or HOS) can be changed. The exploit also allows dumping of the bootloader and any console unique information. Set your Switch DNS server to 104.236.106.125, and perform a connection test. Click 'Install'. If you see 2000-1337 on your screen it means installation succeeded. Restart the device, and perform a new connection test. The exploit is finished when there's a popup asking you to exit. Go to the home menu and click the Album icon.

Homebrew should work with any CPython and defaults to the macOS system Python.

Homebrew provides formulae to brew Python 3.x.

Homebrew provided a python@2 formula until the end of 2019, at which point it was removed due to the Python 2 deprecation.

Important: If you choose to use a Python which isn’t either of these two (system Python or brewed Python), the Homebrew team cannot support any breakage that may occur.

Python 3.x

Brew Switch

Homebrew provides a formula for Python 3.x (python@3.x).

Important: Python may be upgraded to a newer version at any time. Consider using a versionmanager such as pyenv if you require stability of minor or patch versions for virtual environments.

The executables are organised as follows:

  • python3 points to Homebrew’s Python 3.x (if installed)
  • pip3 points to Homebrew’s Python 3.x’s pip (if installed)
Switch

Unversioned symlinks for python, python-config, pip etc. are installed here:

Setuptools, Pip, etc.

The Python formulae install pip (as pip3) and Setuptools.

Setuptools can be updated via pip3, without having to re-brew Python:

Similarly, pip3 can be used to upgrade itself via:

site-packages and the PYTHONPATH

The site-packages is a directory that contains Python modules (especially bindings installed by other formulae). Homebrew creates it here:

So, for Python 3.y.z, you’ll find it at /usr/local/lib/python3.y/site-packages.

Python 3.y also searches for modules in:

  • /Library/Python/3.y/site-packages
  • ~/Library/Python/3.y/lib/python/site-packages

Homebrew’s site-packages directory is first created if (1) any Homebrew formula with Python bindings are installed, or (2) upon brew install python.

Why here?

The reasoning for this location is to preserve your modules between (minor) upgrades or re-installations of Python. Additionally, Homebrew has a strict policy never to write stuff outside of the brew --prefix, so we don’t spam your system.

Homebrew-provided Python bindings

Some formulae provide Python bindings.

Warning! Python may crash (see Common Issues) if you import <module> from a brewed Python if you ran brew install <formula_with_python_bindings> against the system Python. If you decide to switch to the brewed Python, then reinstall all formulae with Python bindings (e.g. pyside, wxwidgets, pygtk, pygobject, opencv, vtk and boost-python).

Policy for non-brewed Python bindings

These should be installed via pip install <package>. To discover, you can use pip search or https://pypi.python.org/pypi.

Note: macOS’s system Python does not provide pip. Follow the pip documentation to install it for your system Python if you would like it.

Brewed Python modules

For brewed Python, modules installed with pip3 or python3 setup.py install will be installed to the $(brew --prefix)/lib/pythonX.Y/site-packages directory (explained above). Executable Python scripts will be in $(brew --prefix)/bin.

The system Python may not know which compiler flags to set in order to build bindings for software installed in Homebrew so you may need to run:

Virtualenv

WARNING: When you brew install formulae that provide Python bindings, you should not be in an active virtual environment.

Activate the virtualenv after you’ve brewed, or brew in a fresh terminal window.Homebrew will still install Python modules into Homebrew’s site-packages and not into the virtual environment’s site-package.

Virtualenv has a --system-site-packages switch to allow “global” (i.e. Homebrew’s) site-packages to be accessible from within the virtualenv.

Why is Homebrew’s Python being installed as a dependency?

Formulae that declare an unconditional dependency on the 'python' formula are bottled against Homebrew’s Python 3.x and require it to be installed.

Today I’d like to announce Homebrew 2.6.0. The most significant changes since 2.5.0 are macOS Big Sur support on Intel, brew commands replacing all brew cask commands, the beginnings of macOS M1/Apple Silicon/ARM support and API deprecations.

Major changes and deprecations since 2.5.0:

  • macOS Homebrew running natively on M1/Apple Silicon/ARM has partial functionality. We recommend installing into /opt/homebrew and forbid installing into /usr/local (to avoid clashing with the macOS Intel install and allow their usage side-by-side). We currently recommend running Homebrew using Intel emulation with Rosetta 2.
  • brew tap-new will set up GitHub Actions workflows toupload to GitHub Releases. Read the blog post for more documentation.

Brew Switch Php

Other changes since 2.5.0 I’d like to highlight are the following:

Brew Switch Python Version

Finally:

  • Discourse and IRC are now deprecated as official communication methods in favour of GitHub Discussions.
  • Homebrew accepts donations through GitHub Sponsors and still accepts donations through Patreon. If you can afford it, please consider donating. If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), check out the other ways to donate in our README.

Brew Switch Python

Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far. Enjoy using Homebrew!