How can I use Homebrew to install both Python 2 and 3 on Mac?

后端 未结 9 765
遇见更好的自我
遇见更好的自我 2020-11-29 14:33

I need to be able to switch back and forth between Python 2 and 3. How do I do that using Homebrew as I don\'t want to mess with path and get into trouble. Right now I have

相关标签:
9条回答
  • 2020-11-29 14:52

    Currently Homebrew provides two different formulas for Python 2 and 3. brew install python installs python3, and brew install python@2 installs python2. More details in Homebrew docs:

    https://docs.brew.sh/Homebrew-and-Python

    If you currently have 2.x installed via Homebrew, Homebrew will give you a message such as:

    Error: python 2.7.14 is already installed
    To upgrade to 3.6.5, run `brew upgrade python`
    

    If you run:

    brew upgrade python
    

    you should be able to do:

    python --version
    

    and

    python3 --version
    

    To see what versions of Python 2.x and 3.x installed.

    0 讨论(0)
  • 2020-11-29 14:53

    You can have both versions installed at the same time.

    For Homebrew >=1.5.0:

    Since 1st March 2018 the python formula will be upgraded to Python 3.x, while a new python@2 formula will be added for Python 2.7, specifically.

    See changes announcement here or the final doc about using Homebrew for Python here.

    For older Homebrew:

    For Python 2.x:

    brew install python
    

    For Python 3.x:

    brew install python3
    

    Now, you will have both the versions installed in your machine. When you want to use version 2, use the python executable. When you want to use version 3, use the python3 executable.

    0 讨论(0)
  • 2020-11-29 14:54

    I thought I had the same requirement - to move between Python versions - but I achieved all I needed with only Python3.6 by building from source instead of using homebrew.

    git clone https://git.<theThingYouWantToInstall>

    Depending on the repo, check if there is MAKE file already setup for this option.

    0 讨论(0)
  • 2020-11-29 14:55

    I would use pyenv You can install it:

    $ brew install pyenv
    

    To enable pyenv in your Bash shell, you need to run:

    $ eval "$(pyenv init -)"
    

    To do this automatically for Bash upon startup, add that line to your ~/.bash_profile. 1

    Usage:

    Once you have installed pyenv and activated it, you can install different versions of python and choose which one you can use. Example:

    $ pyenv install 2.7.5
    

    You can check the versions you have installed with:

    $ pyenv versions
    

    And you can switch between python versions with the command:

    $ pyenv global 3.3.1
    

    Also you can set a python version for the current directory with:

    $ pyenv local 3.5.2
    

    You can check by running python --version:

    $ python --version
    Python 3.5.2
    

    1 Homebrew used to instruct you to do this upon installation of pyenv, but the message was removed. For Zsh and other shells, the precise steps may be different.

    0 讨论(0)
  • 2020-11-29 14:56

    I was able to just go to https://www.python.org/downloads/mac-osx/ and download the latest python. It installed along side current python in my system.

    0 讨论(0)
  • 2020-11-29 15:05

    There are ways to use both , but the simplest solution today is to use pyenv. pyenv allows easy switching between versions. Here is what I did to set up:

    STEP1:

    Remove all pythons from your mac

     brew uninstall --ignore-dependencies --force python
     sudo rm -rf ~/miniconda3/
     sudo rm -rf ~/.conda/
    

    Remove the following from ~/.bash_profile

    export PATH="/Users/ishandutta2007/miniconda3/bin:$PATH"

    and also the following from ~/.bashrc

    export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH
    export PYTHONPATH=/usr/local/lib/python2.7/site-packages/google:$PYTHONPATH
    alias python="/usr/bin/python"
    

    STEP2:

    Install pyenv and the python versions you need

    brew update
    brew install pyenv
    pyenv install 2.7
    pyenv install 3.7.0
    

    STEP3:

    add pyenv init to bash_profile or bashrc

    echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
    

    STEP4:

    Check what got installed

    pyenv versions
    
    • system (set by /Users/ishandutta2007/.pyenv/version)

      2.7

      3.7.0

    STEP5:

    Choose a default

    pyenv global 3.7.0
    

    When a project needs older version, just go its root folder and run

    pyenv local 2.7
    
    0 讨论(0)
提交回复
热议问题