我通常使用Python 2.7,但最近在Mac OS X上使用Miniconda安装了Python 3.5。这两个版本的Python都已安装不同的库。现在,在终端中输入关键字“python”或“python3”会调用Python 3.5,而“python2”则返回“-bash:python2:命令未找到”。如何使用别名分别调用它们,即“python2”和“python3”?
我目前正在使用OS X El Capitan。
我通常使用Python 2.7,但最近在Mac OS X上使用Miniconda安装了Python 3.5。这两个版本的Python都已安装不同的库。现在,在终端中输入关键字“python”或“python3”会调用Python 3.5,而“python2”则返回“-bash:python2:命令未找到”。如何使用别名分别调用它们,即“python2”和“python3”?
我目前正在使用OS X El Capitan。
在我看来,在 macOS 上使用两个不同的 Python 版本,最好的方法是通过 homebrew
。在 macOS 上安装 homebrew后,请在终端上运行以下命令。
brew install python@2
brew install python
现在你可以通过调用 python2
运行 Python 2.7 或者通过调用 python3
运行 Python 3。除此之外,你还可以使用 virtualenv
或 pyenv 来管理不同版本的 python
环境。
OSX的Python二进制文件(版本2)位于/usr/bin/python
如果你使用which python
命令,它会告诉你python
命令被解析到哪里。通常情况下,第三方程序会在/usr/local/bin
重新定义东西(默认情况下优先于/usr/bin
)。 要修复这个问题,你可以直接运行/usr/bin/python
来使用2.x版本,或者找到错误的重定义位置(可能在/usr/local/bin
或其他PATH
中的某个地方)。
python2
调用 Python 2 和使用 python3
调用 Python 3。你能给我一些相关的信息吗?谢谢。 - Viswanathbrew install python
将不会安装Python2,所以你需要运行brew install python@2
。python2
指向来自/usr/bin/python
的Python2.x。python3
指向来自/Users/ishandutta2007/miniconda3/bin/python
的Python3.x。python
指向Python3。python
作为Python2的别名,我在.bashrc
文件中添加了以下内容:
alias python='/usr/bin/python'
。which python
来运行python2,例如使用/usr/bin/python
,然后在.bash_profile
中创建一个别名:
alias python2="/usr/bin/python"
现在我可以通过调用python
来运行python3,通过调用python2
来运行python2。
如果您在MacOS High Sierra 10.13.5上安装了Anaconda3(Python 3.6),以下是将Python版本设置回2.7的方法。
vi $HOME/.bash_profile
anaconda3
addition to your PATH
like this:
# export PATH="/Users/YOURUSERNAME/anaconda3/bin:$PATH"
python
如果您想要安装3.6版本的话,您可以在.bash_profile文件中取消注释anaconda3
这一行。
在Mac OS X系统中尝试删除python
会导致失败。
您将会得到如下结果:
unlink: /usr/bin/python: Operation not permitted
2.7
的可选符号链接,而你被告知不要依赖它们,但它没有包括建议使用的后缀为2
的符号链接,而你被告知应该依赖它们。
$ cd <somewhere writable and in your PATH>
$ ln -s /usr/bin/python python2
或者在您的bash配置中使用别名:
alias python2 python2.7
如果需要,您也可以对苹果的2to3、easy_install等进行类似操作。
不要尝试将这些符号链接放入/usr/bin
中,绝对不要尝试重命名已有的文件或更改distutils设置为更符合PEP规范的内容。这些文件都是操作系统的一部分,并且可以被操作系统的其他部分使用,您的更改可能会在从10.13.5到10.13.6的小型更新甚至更高版本中被覆盖,因此请按照上述方法避免对它们进行更改。
或者,您可以:
python2.7
而不是python2
。python
时,全局的python
、python3
、python2
等都无关紧要。
python -2
吗? - TigerhawkT3python2
和python3
可以实现这个目的(如果这正是你所想要的并且你相应地编辑了你的问题,我将把它作为答案发布)。或者你想在键入“python”时切换实际运行的Python版本? - David Zpython2
,似乎您仍需要重新安装某些内容以适用于Python 2版本。 - Charlie Parker