让Sublime Text 3使用Anaconda Python

6

我已将Anaconda安装到我拥有特权的目录中,但是我无法让Sublime Text 3识别出现在使用Anaconda Python的shell:

>which python
/local/home/USER/Apps/anaconda/bin/python

当我使用从同一 shell 启动的 Sublime 进行构建时:

import astropy
print astropy.__file__

这个路径是不同的: /soft/python-SL7/lib/python2.7/site-packages/astropy/init.pyc

我的.tcshrc文件内容如下:

setenv PATH /local/home/USER/Apps/anaconda/bin:${PATH}
alias subl /local/home/USER/Apps/sublime_text_3/sublime_text

我的 .bashrc 文件(虽然不应该使用它)如下:

export PATH="/local/home/sread/Apps/anaconda/bin:$PATH"

有什么想法吗?
2个回答

15

最简单的方法是创建一个新的构建系统,该系统指向你的Anaconda安装位置。在Sublime中使用JSON语法创建一个新文件,并包含以下内容:

{
    "cmd": ["/local/home/USER/Apps/anaconda/bin/python", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"
}

将文件保存到你的Packages/User目录下(应该是~/.config/sublime-text-3/Packages/User),文件名为Anaconda.sublime-build。最后,选择Tools → Build System → Anaconda,在Python文件中按下CtrlB,现在应该可以使用Anaconda运行了。

如果你想在Sublime中使用Anaconda和IPython设置SublimeREPL,你可以按照这里的说明设置正确的菜单选项(当然要根据你的环境修改路径),以及我在这里为IPython 4和Jupyter设置SublimeREPL的gist。


这对我不起作用。我只是复制粘贴了你的答案以确保。我还用["which", "python"]["which", "/local/home/USER/Apps/anaconda/bin/python"]替换了cmd。两个命令都返回/local/home/USER/Apps/anaconda/bin/python。因此,shell 是正确的,它只是一直从/soft/python-SL7/lib/python2.7/site-packages导入。 - Lucidnonsense
此外,当我尝试运行 pip install astropy --update 时,它会完成并表示已安装先前的版本。这可能有关吗? - Lucidnonsense
@Lucidnonsense 就 pip 而言,pip -V 返回的是什么?它应该告诉你它关联的是哪个 Python 可执行文件。至于另一个问题,你在 .tcshrc.bashrc 中设置了 PYTHONPATH 变量吗? - MattDMo
我设法修复了这个问题。我不知道怎么修复的。(pip -V 返回anaconda路径)。 - Lucidnonsense
我仍然无法让它工作。可能是Sublime没有调用命令“conda activate base”。我们该怎么做? - kstn
@kstn 使用 Conda 包。 - MattDMo

1
另一个答案是正确的,但您也可以通过编辑项目文件并添加以下内容来设置每个项目的设置:
"build_systems":
[
    {
        "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
        "name": "Anaconda Python Builder",
        "selector": "source.python",
        "shell_cmd": "\"python3\" -u \"$file\""
    }
],

这样做的好处是不会在构建菜单中留下太多的构建系统。

这完全不同。这是由Anaconda Sublime软件包自动创建的构建系统,与OP使用的Anaconda Python发行版无关。 - MattDMo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接