Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MacOSX上的Python2.7和Python3.5之间切换_Python_Macos_Python 2.7_Python 3.x_Terminal - Fatal编程技术网

在MacOSX上的Python2.7和Python3.5之间切换

在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

我通常使用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/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