在MacOSX上的Python2.7和Python3.5之间切换
我通常使用Python2.7,但最近在Mac OS X上使用Miniconda安装了Python3.5。已经为这两个版本的Python安装了不同的库。现在,在终端中输入关键字“python”或“python3”将调用python3.5,“python2”返回“-bash:python2:command not found”。现在如何分别使用别名“python2”和“python3”来调用它们 我目前正在使用OS X El Capitan。OSX的Python二进制文件(版本2)位于在MacOSX上的Python2.7和Python3.5之间切换,python,macos,python-2.7,python-3.x,terminal,Python,Macos,Python 2.7,Python 3.x,Terminal,我通常使用Python2.7,但最近在Mac OS X上使用Miniconda安装了Python3.5。已经为这两个版本的Python安装了不同的库。现在,在终端中输入关键字“python”或“python3”将调用python3.5,“python2”返回“-bash:python2:command not found”。现在如何分别使用别名“python2”和“python3”来调用它们 我目前正在使用OS X El Capitan。OSX的Python二进制文件(版本2)位于/usr/bi
/usr/bin/Python
如果使用
whichpython
,它将告诉您python
命令解析到哪里。通常,第三方会在/usr/local/bin
中重新定义内容(默认情况下优先于/usr/bin
)。要修复此问题,您可以直接运行/usr/bin/python
来使用2.x,或者找到错误的重新定义(可能在/usr/local/bin
中,或者在路径的其他地方)IMHO,在macOS上使用两个不同python版本的最佳方法是通过自制。在macOS上运行后,在终端上运行以下命令
brew install python@2
brew install python
现在,您可以通过调用python2
来运行Python 2.7,或者通过调用python3
来运行Python 3。除此之外,您还可以使用或管理不同版本的python
环境
我从未亲自使用过,但从它看来,它类似于结合使用pip
和virtualenv
。我只是跟进@John Wilkey的答案
我的别名python
用于表示python2.7(位于/usr/bin
)。
但是,对于python3
,默认的python_路径前面现在是/usr/local/bin
;因此,在键入python时,我没有得到任何python版本
我尝试在/usr/local/bin
中为python2
创建链接:
ln-s/usr/bin/python/usr/local/bin/
它在为python2
调用python
时工作 我已经安装了python3(通过miniconda3),并且需要同时安装python2。在这种情况下,brew install python
不会安装python2,因此您需要
brew安装python@2
现在别名python2
引用了/usr/bin/python
别名python3
指的是来自/Users/ishandutta2007/miniconda3/bin/python
默认情况下,别名python
指的是python3
现在要使用python
作为python2的别名,我在.bashrc
文件中添加了以下内容
alias python='/usr/bin/python'
要返回默认的python 3,只需在需要时删除这一行。如果您在MacOS High Sierra 10.13.5上安装了Anaconda3(python 3.6),如何将python版本设置回2.7
在主目录中编辑.bash_配置文件
vi$HOME/.bash_配置文件
散列出行#export PATH=“/Users/YOURUSERNAME/anaconda3/bin:$PATH”
再次关闭shell open,运行python时应该会看到2.7
然后,如果您想要3.6版本,只需在bash概要文件中取消对anaconda3行的注释即可
在MacOSX中,尝试断开python链接将以眼泪告终
你会喜欢这样的
取消链接:/usr/bin/python:不允许操作
希望能帮到别人!!:):) 如果您想使用苹果的系统安装版Python 2.7,请注意它并没有完全遵循中列出的命名标准
特别是,它包括您被告知不要依赖的后缀为2.7
的可选符号链接,并且不包括您被告知应该依赖的后缀为2
的推荐符号链接
如果您想解决这个问题,在坚持使用苹果的Python的同时,您可以创建自己的符号链接:
$ cd <somewhere writable and in your PATH>
$ ln -s /usr/bin/python python2
如果你需要的话,你也可以为苹果的2to3,easy_install等做同样的事情
您不应该尝试将这些符号链接放入/usr/bin
,也绝对不应该尝试重命名已经存在的符号,或者将distutils设置更改为更符合PEP的设置。这些文件都是操作系统的一部分,并且可以被操作系统的其他部分使用,而且即使是从10.13.5到10.13.6或其他一些小的更新,您的更改也可能被覆盖,所以请不要管它们,按照上面所述处理它们
或者,您可以:
- 只需在命令行和shbang中使用
python2.7
而不是python2
李>
- 使用虚拟环境或conda环境。全局
python
、python3
、python2
等。当您始终使用激活环境的本地python
时,这些都无关紧要
- 停止使用苹果的2.7,而是像大多数其他答案所建议的那样,在它旁边安装一个完整的2.7。(我不知道为什么这么多人还建议您安装第二个3.6。这只会增加更多的混乱,毫无益处。)
与约翰·威尔基的答案类似,我会通过查找哪一条python
,比如使用/usr/bin/python
,然后在中创建一个别名来运行python2
alias python2=“/usr/bin/python”
我现在可以通过调用python
来运行python3,通过调用python2
来运行python2。您是否尝试过python-2
?听起来您应该用Miniconda打开一个他们不遵循的bug报告。在它们之间切换是什么意思?您是否希望能够在需要时专门调用Python2,并在需要该版本时专门调用Python3?您可以使用别名python2
和python3
(我将
alias python2 python2.7