无法在Sublime Text2中设置Python版本

zbi*_*nsd 2 python macports sublimetext2

我在Sublime Text2中设置构建环境时遇到问题.我正在使用Macports进行Python和包安装.

我的python.sublime-build文件如下所示:

{
    "cmd": ["python", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"
}
Run Code Online (Sandbox Code Playgroud)

我认为(从搜索中)我需要修改"cmd"行以指向Macports版本.有人成功完成了吗?

从终端,一切都建立/运行良好,它只是Sublime Text2的构建,仍然抓住系统版本.

附加信息:

which python
/opt/local/bin/python
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

Mar*_*ers 15

您的Sublime Text 2环境与您的shell环境不同; 该$PATH变量可能未指向相同的目录,并且选择了错误的可执行文件.

您有几种方法可以解决这个问题:

  1. 设置一个"path"包含/opt/local/bin 需要使用python可执行文件的绝对路径的选项,因为Sublime Text 2不共享shell使用的相同环境PATH变量.检查echo $PATH并使用它作为模板:

    {
        "cmd": ["python", "-u", "$file"],
        "path": "/opt/local/bin:/opt/local/sbin:/Library/Frameworks/Python.framework/Versions/Current/bin:/Users/yourloginname/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin",
        "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
        "selector": "source.python"
    }
    
    Run Code Online (Sandbox Code Playgroud)

    这将用于/bin/bash运行命令,我认为该命令与$PATH终端设置相同.

  2. 通过shell运行命令,而不是通过设置"shell"选项:

    {
        "cmd": ["python", "-u", "$file"],
        "shell": true,
        "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
        "selector": "source.python"
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 使用python命令的完整路径:

    {
        "cmd": ["/opt/local/bin/python", "-u", "$file"],
        "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
        "selector": "source.python"
    }
    
    Run Code Online (Sandbox Code Playgroud)