在Mac OS X上在python 2.7和python 3.5之间切换

时间:2016-01-08 15:13:38

标签: python macos python-2.7 python-3.x terminal

我通常使用Python 2.7但最近在Mac OS X上使用Miniconda安装了Python 3.5。已经为这两个版本的python安装了不同的库。现在,在终端输入关键字'python'或'python3'中的任何一个调用python 3.5,'python2'返回'-bash:python2:command not found'。我现在如何使用别名'python2'和'python3'分别调用它们?

我目前正在使用OS X El Capitan。

7 个答案:

答案 0 :(得分:66)

恕我直言,在macOS上使用两个不同的Python版本的最佳方法是通过homebrew。在macOS上installing homebrew之后,在终端上运行以下命令。

brew install python@2
brew install python

现在,您可以通过调用python2来调用python3或Python 3来运行Python 2.7。除此之外,您还可以使用virtualenvpyenv来管理不同版本的python环境。

我从未亲自使用miniconda,但是从the documentation,来看,它看起来与使用pipvirtualenv相似。

答案 1 :(得分:13)

OSX的Python二进制文件(版本2)位于/usr/bin/python

如果您使用which python,它会告诉您python命令的解析位置。通常情况下,第三方会重新定义/usr/local/bin中的内容(优先级高于/usr/bin)。要修复,您可以直接运行/usr/bin/python以使用2.x或找到错误的重新定义(可能在/usr/local/binPATH中的其他位置)

答案 2 :(得分:5)

我已经安装了python3(通过miniconda3),并且需要与python2一起安装,在这种情况下,brew 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'

要默认返回python3,只需在需要时删除此行即可。

答案 3 :(得分:2)

如果在MacOS High Sierra 10.13.5上安装了Anaconda3(Python 3.6),如何将python版本设置回2.7

在主目录中编辑.bash_profile文件。

vi $ HOME / .bash_profile

散列#export PATH =“ / Users / YOURUSERNAME / anaconda3 / bin:$ PATH”

再次关闭外壳,然后在运行python时看到2.7。

然后,如果您想要3.6,只需在bash个人资料中取消注释anaconda3行即可。

在Mac OSX中,尝试取消python链接将流泪。

你会这样的

取消链接:/ usr / bin / python:不允许操作

希望可以帮助某人!! :):)

答案 4 :(得分:2)

类似于John Wilkey的答案,我将通过找到/usr/bin/python来运行python2,类似于使用.bash_profile,然后在alias python2="/usr/bin/python"中创建别名

python

我现在可以通过调用python2运行python3并通过调用 <Image source={require('/logo_full.png')} style={{width: 200, height: 40}}/> 运行python2。

答案 5 :(得分:1)

我只是跟随@John Wilkey的回答。

我的别名python曾用于表示python2.7(位于/usr/bin)。 但是,对于/usr/local/bin,默认的python_path现在以python3开头;因此在键入python时,我没有得到python版本。

我尝试在/usr/local/bin中为python2

创建一个链接

ln -s /usr/bin/python /usr/local/bin/

在为python调用python2时有效。

答案 6 :(得分:1)

如果要使用Apple的Python 2.7系统安装,请注意,它并没有完全遵循PEP 394中规定的命名标准。

尤其是,它包括告诉您不要依赖的带有后缀2.7的可选符号链接,并且不包括告诉您的带有后缀2的推荐符号链接。 >应该依靠。


如果要解决此问题,可以在使用Apple的Python的同时坚持自己的符号链接:

$ cd <somewhere writable and in your PATH>
$ ln -s /usr/bin/python python2

或者在bash配置中使用别名:

alias python2 python2.7

如果需要,您也可以对Apple的2to3,easy_install等进行同样的操作。

您不应尝试将这些符号链接放入/usr/bin中,并且一定不要尝试重命名已存在的内容,或将distutils设置更改为更符合PEP要求的设置。这些文件都是操作系统的一部分,并且可以被操作系统的其他部分使用,并且您的更改甚至可以在从10.13.5到10.13.6的次要更新中被覆盖,因此,请别管它们并解决它们如上所述。


或者,您可以:

  • 只需在命令行以及您的快捷键等中使用python2.7而不是python2
  • 使用虚拟环境或conda环境。全局pythonpython3python2等在您始终使用激活环境的本地python时都没有关系。
  • 请停止使用Apple的2.7,而要像其他大多数答案所建议的那样,同时安装另一个2.7。 (我不知道为什么很多人还建议您安装第二个3.6。这只会增加更多混乱,毫无益处。)