【问题标题】:Which python am I using?我使用的是哪个蟒蛇?
【发布时间】:2018-01-26 09:44:13
【问题描述】:

无法确保我实际使用的是最新版本的 Python,即使它们已经通过自制软件安装。

$ brew upgrade python3
Error: python3 3.6.2 already installed

但是:

$ python3 --version
Python 3.6.0

python2 也是如此:

$ brew upgrade python
Error: python2 2.7.13_1 already installed

$ python --version
Python 2.7.10`

【问题讨论】:

  • 我不会太担心你的 python 安装的次要版本
  • 我在语言检查时遇到 pip 安装错误,我正在查看这里,其中一些答案提到了对较新的次要版本的修复:stackoverflow.com/questions/27835619/…
  • 所以我想确保在通过 pip 安装时使用的是较新的版本
  • @kanjaklub,我没有 Mac,但我敢打赌你那里有 PATH 问题。看起来你都安装了,但 PATH 上的那个不是你想要的。 Mac 有locate 吗?如果是这样,请尝试运行locate bin/python,看看它会返回什么。
  • brew 默认安装到/usr/local/bin。您的 shell 使用您的 PATH 配置来查找二进制文件,看起来您没有将其配置为包含 /usr/local/bin

标签: python version homebrew


【解决方案1】:
❯ echo `which python`

如果这不打印 '/usr/local/bin/python' (brew 实际安装二进制文件的地方),那么你的 $PATH 有问题(可能 '/usr/local/bin' 不存在或者它是在'/usr/bin'之后插入,所以系统默认的python正在运行)。

++ 似乎brew默认将其python2.7命名为python2,而不是python,所以你可能还需要创建一个python2->python链接到 /usr/local/bin 目录。

【讨论】:

    【解决方案2】:

    您是否为每个设置了单独的环境变量?

    我过去发现拥有多个版本的 python 2,例如,没有所有环境变量,会变得相当混乱!

    你可能会发现在输入python3时,windows只看python 3.0,除非你在python 3.6.2目录下。

    【讨论】:

      【解决方案3】:

      首先我修改了我的 $PATH:sudo nano /etc/paths,这样/Library/Frameworks/Python.framework/Versions/3.6/bin 就不会被调用。我确保我的路径顺序正确,以便 python 首先查找 /usr/local/bin/python3/usr/local/bin/python2 来强制解决问题。

      但是,$ python3 --version 仍然返回 Python 3.6.0,虽然 brew 说 python3 3.6.2 already installed

      brew doctor 救援:自制推荐了几件事。 python 的符号链接不正确,所以我运行了brew --overwrite python3。最后,它诊断出python来自/Library/Frameworks/Python.framework/Versions/3.6/bin,所以我sudo rm -rf /Library/Frameworks/Python.framework。现在python版本是正确的。

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

      感谢大家的帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-20
        • 2010-10-27
        • 2020-05-17
        • 2010-10-21
        • 2016-05-28
        • 2014-08-01
        • 2021-06-28
        相关资源
        最近更新 更多