Which python am I using?

28,765

Solution 1

First I modified my $PATH: sudo nano /etc/paths so that /Library/Frameworks/Python.framework/Versions/3.6/bin was not being invoked. I made sure my paths were in the right order so that python looked for /usr/local/bin/python3 and /usr/local/bin/python2 first to force the issue.

However, $ python3 --version still returned Python 3.6.0, though brew says python3 3.6.2 already installed.

brew doctor to the rescue: homebrew recommended a couple things. python was incorrectly symlinked so I ran brew --overwrite python3. Finally, it diagnosed python coming from /Library/Frameworks/Python.framework/Versions/3.6/bin, so I sudo rm -rf /Library/Frameworks/Python.framework. Now python versions are correct.

Homebrew brew doctor warning about /Library/Frameworks/Python.framework, even with brew's Python installed

Thank you everyone for your help.

Solution 2

❯ echo `which python`

If this doesn't print '/usr/local/bin/python' (where brew actually installs binaries), then there's something wrong with your $PATH (probably '/usr/local/bin' is not there or it's inserted after '/usr/bin', so the system default python is being run instead).

++ it seems that brew names its python2.7 as python2 by default, and not as python, so you may also need to create a python2->python link in /usr/local/bin directory.

Solution 3

Do you have separate environment variables set up for each?

I have found in the past that having multiple versions of python 2 for example, without all the environment variables, can get quite confusing!

You may find when typing python3, windows is only looking at python 3.0, unless you are in the python 3.6.2 directory.

Share:
28,765

Related videos on Youtube

kanja klub
Author by

kanja klub

Updated on August 18, 2020

Comments

  • kanja klub
    kanja klub over 3 years

    Having trouble making sure I'm actually using the latest versions of Python even though they are already installed via homebrew.

    $ brew upgrade python3
    Error: python3 3.6.2 already installed
    

    but:

    $ python3 --version
    Python 3.6.0
    

    same goes for python2:

    $ brew upgrade python
    Error: python2 2.7.13_1 already installed
    
    $ python --version
    Python 2.7.10`
    
    • AK47
      AK47 over 6 years
      I wouldnt worry too much about the minor version of your python installation
    • kanja klub
      kanja klub over 6 years
      I'm having pip installation errors on language-check, I'm looking here and some of the answers mention fixes on newer minor versions: stackoverflow.com/questions/27835619/…
    • kanja klub
      kanja klub over 6 years
      So I want to make sure I'm using the newer versions when I'm installing via pip
    • caxcaxcoatl
      caxcaxcoatl over 6 years
      @kanjaklub, I don't have a Mac, but I'm betting you have a PATH problem there. Looks like you have both installed, but the one on the PATH is not what you want. Does Mac have locate? If so, try running locate bin/python, and see what it returns.
    • Martijn Pieters
      Martijn Pieters over 6 years
      brew installs into /usr/local/bin by default. Your shell uses your PATH configuration to find binaries, it looks like you did not configure it to include /usr/local/bin.
    • Martijn Pieters
      Martijn Pieters over 6 years
      You can use the full path to the binary to force the issue: /usr/local/bin/python3.
    • Martijn Pieters
      Martijn Pieters over 6 years
      Use which to tell you what binary was used when you just state the python or python3 commands, e.g. which python3. If you use the -a command-line switch all binaries available via your PATH are listed: which -a python3.
    • kanja klub
      kanja klub over 6 years
      which -a python3 outputs /Library/Frameworks/Python.framework/Versions/3.6/bin/python‌​3 /usr/local/bin/python3
    • kanja klub
      kanja klub over 6 years
      Here is my $PATH: -bash: /Library/Frameworks/Python.framework/Versions/3.6/bin:/usr/l‌​ocal/bin:/usr/bin:/b‌​in:/usr/sbin:/sbin: No such file or directory
    • kanja klub
      kanja klub over 6 years
      Here is what I get with locate bin/python: WARNING: The locate database (/var/db/locate.database) does not exist. To create the database, run the following command: sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist Please be aware that the database can take some time to generate; once the database has been created, this message will no longer appear.