Mac使用默认Python而非Anaconda安装的Python
我正在使用Mac 10.9 Mavericks,并且已经安装了Anaconda。不过,当我通过终端访问Python时,仍然得到的是苹果自带的版本:
Python 2.7.5 (default, Sep 2 2013, 05:24:04)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
我的.bash_profile文件是这样的:
export PATH="$HOME/anaconda/bin:$PATH"
MONGO_PATH=/usr/local/mongodb/bin
SQL_PATH=/usr/local/mysql
export PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$PATH"
有没有什么办法可以让我使用Anaconda的Python版本?现在我有点不知道该怎么办了。
谢谢
9 个回答
如果你在使用fish这个命令行工具,你会发现Anaconda会把你之前的.bash_profile文件备份成.bash_profile-anaconda.bak,并在.bash_profile的底部添加了两行内容,像这样:
# added by Anaconda2 4.1.1 installer
export PATH="/Users/username/anaconda/bin:$PATH"
不过,fish并不会读取这个文件,所以你需要手动把这些内容添加到fish的配置文件里,这个文件的位置是~/.config/fish/config.fish:
set -x PATH /Users/username/anaconda/bin $PATH
更新:对于所有使用Python 3的人来说,上面的解决方案在Python 3中是行不通的。
Anaconda的Python 3现在位于 ~/anaconda3/bin
。所以你应该这样做:
export PATH="$HOME/anaconda3/bin:$PATH"
或者
export PATH="$HOME/anaconda3/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$PATH"
如果你在使用 zsh 这个命令行工具,你可以在你的根文件夹里的 zshrc 文件中进行编辑,添加以下内容:
export PATH="$HOME/anaconda/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$PATH"
如果你的默认终端是sh(或者可能是其他非bash的终端),你就无法访问你的Anaconda Python。如果你遇到这种情况,可以按照以下步骤操作:
- 打开终端,找到“偏好设置”
- 找到“Shells open with:”这一项
- 点击“命令(完整路径)”的按钮
- 在路径框里输入
/bin/bash
重启你的终端。现在,当你输入 $ which python
时,你应该能看到Anaconda的Python。对我来说,它的路径是 /Users/myname/anaconda3/bin/python
。
输入 $ echo $PATH
也会显示正确的路径,Anaconda的路径会排在最前面:
/Users/myname/anaconda3/bin:/Users/myname/anaconda3/condabin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/opt/X11/bin
在Atom编辑器中,我需要在每个脚本的开头添加一个shebang,以设置我的Python偏好:
#!/Users/myname/anaconda3/bin/python
第一个找到的可执行文件就是被运行的那个。从我了解到的情况,你在设置你的PATH变量时,可能是这样连接的:
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
这段代码在这之前:
$HOME/anaconda/bin
所以确保anaconda的目录是第一个,这样它就会有优先权:
export PATH="$HOME/anaconda/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$PATH"