我曾经安装了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
答案 0 :(得分:3)
您错过了Homebrew从Cellar到您路径上实际bin目录的符号链接。
使用:
brew link python2
解决这个问题。
您可能会遇到警告:
警告:python @ 2只是keg,必须与--force链接注意这样做会干扰构建软件。
有关详细信息,请参阅this SO question的已接受答案。
在大多数情况下,您可以安全地使用
brew link --force python2
如果您没有计划构建自己的库,需要Python 2的源代码(libpython.so
和Python.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/
。但这是一个不同的主题或问题。
使用pip作为Homebrew的Python 2,最好用的是
python2 -m pip <command>
然后你可以清楚地看到你的pip
命令所使用的Python,并将它与Python 3(python3 -m pip
)区分开来。
如果您有自制问题,首先要采取行动
brew doctor
错误消息通常非常有助于解决一些问题。
答案 1 :(得分:2)
似乎Homebrew已经改变了一些东西 - 因为同样的原因我通过Homebrew安装了python 2.7.x和3.x.x.初始更新后,python2
将不再有效,但如果您使用python@2
,则可以像以前一样获得访问权限。
然而,现在他们似乎已经部分地恢复了一些这些变化。现在调用python
指向仅限keg的2.7.x自制安装而不是3.x.x安装。此外,python@2
不再有效,但python2
没有。 python3
仍然像以前一样指向3.x.x安装。
[注意:我没有修改我的〜/ .bash_profile以进行任何这些更改。]