【问题标题】:How to run Python2 after Homebrew Update?Homebrew 更新后如何运行 Python2?
【发布时间】:2018-03-03 10:05:20
【问题描述】:

我曾经安装过python和python3。所以我可以决定使用哪个 python。我现在用自制软件更新了 python,并将 python3 迁移到了 python。我现在如何运行python2?

当我检查安装时,我得到:

$ python -V
Python 3.6.4
$ python2 -V
-bash: python2: command not found
$ python3 -V
Python 3.6.4

如果我尝试简单地重新安装 python2,我会得到:

$ brew install python2
Warning: python@2 2.7.14_1 is already installed

但是我不能使用 python2。

python2: command not found

【问题讨论】:

  • 使用旧的、过时的、Apple 提供的 /usr/bin/python
  • 我没说要使用python。我说用/usr/bin/python -V
  • 您可以将pip作为您希望影响的Python模块执行.../usr/bin/python -m pip install --user somePackage
  • @MarkSetchell 应用提供的 python 似乎没有 pip:/usr/bin/python: No module named pip
  • @MarkSetchell 有没有办法让'python' 指向/usr/bin/python python3 像以前一样指向 brew 的 python3?

标签: python python-2.7 homebrew


【解决方案1】:

您缺少 Homebrew 从 Cellar 到路径上实际 bin 目录的符号链接。

用途:

brew link python2

解决这个问题。

您可能会遇到警告:

警告:python@2 仅限于小桶,必须与 --force 链接注意,这样做可能会干扰构建软件。

有关详细信息,请参阅this SO question 的已接受答案。

在大多数情况下,您可以安全地使用

brew link --force python2

如果您不打算构建自己的需要 Python 2 源代码(libpython.soPython.h)的库。
如果您确实需要源代码,则需要提供包含路径和库路径,例如/usr/local/Cellar/python/2.7.14_3/Frameworks/Python.framework/Versions/2.7/include/python2.7/usr/local/Cellar/python/2.7.14_3/Frameworks/Python.framework/Versions/2.7/lib/。但这是一个不同的主题或问题。


要在 Homebrew 的 Python 2 中使用 pip,最好使用的是

python2 -m pip <command>

然后您可以清楚地看到您的pip 命令与什么 Python 一起使用,并将其与 Python 3(即 python3 -m pip)分开。


注意

如果您遇到 Homebrew 问题,首先要运行

brew doctor

错误消息通常对解决某些问题很有帮助。

【讨论】:

  • 使用brew link python2 得到Warning: python@2 is keg-only and must be linked with --force Note that doing so can interfere with building software.
  • @OrtomalaLokni 这是一个相关但不同的问题,仅当您遇到实际问题时才相关。解释在stackoverflow.com/questions/17015285/…
  • 好的,但由于python@2 别名python2 现在只供小桶使用,我想知道brew link python2 怎么能工作?
  • 并且使用brew link --force 会在brew doctor 中产生警告。
【解决方案2】:

Homebrew 似乎又改变了一些事情——因为同样的原因,我通过 Homebrew 安装了 python 2.7.x 和 3.x.x。初次更新后,python2 将不再工作,但如果您使用 python@2,您将像以前一样获得访问权限。

但现在,他们似乎部分恢复了其中一些更改。调用 python 现在指向仅桶装 2.7.x 自制软件安装,而不是 3.x.x 安装。此外,python@2 不再有效,但 python2 无效。 python3 仍然像以前一样指向 3.x.x 安装。

[注意:我没有修改我的 ~/.bash_profile 以使这些更改发生。]

【讨论】:

    猜你喜欢
    • 2011-08-26
    • 2015-12-16
    • 2016-07-28
    • 2011-11-01
    • 2011-05-30
    • 2012-09-15
    • 2016-06-30
    • 1970-01-01
    相关资源
    最近更新 更多