这可能吗 > Sublime3 + Python linter + virtualenv?

10 投票
3 回答
3262 浏览
提问于 2025-04-18 17:20

我看了很多相互矛盾的StackOverflow帖子,浏览了所有相关的GitHub问题,还尝试了各种Sublime配置文件中的设置,最后实在没办法了,只好求助。

就像标题说的那样——我想用Sublime3 + Sublime Linter + 类似pylint的工具来检查我的Python代码,而这个Python是安装在特定项目的虚拟环境中的。我不太确定具体需要哪些工具,只要能用就行。

请问,有人知道这是否可能——更重要的是,怎么才能做到呢?

提前谢谢大家!

3 个回答

4

在Sublime Text 3中,你可以为每个项目设置一个自定义的虚拟环境来使用flake8,并把它接入SublimeLinter。

首先,你需要通过pip install flake8命令把flake8安装到你的虚拟环境中,但要注意不要把flake8和它的依赖项放进你的requirements.txt文件里。

接下来,你需要编辑Sublime Text的项目设置文件,把SublimeLinter的相关设置粘贴进去,并指定你项目的虚拟环境中Python的完整路径:

{
    "settings": {
        "SublimeLinter": {
            "linters": {
                "flake8": {
                    "python": "/path/to/virtualenv_folder/bin/python"
                },
            }
        }
    }
}

另外,你也可以使用一个简化的属性SublimeLinter.linters.flake8.python,就像在其他回答中提到的那样。

这样,每次SublimeLinter在打开项目中的*.py文件时,flake8都会从你指定的那个自定义Python虚拟环境中运行。

5

更新一下,现在Sublime Linter建议根据每个项目的设置进行更新,具体如下:

"settings":
{
    "SublimeLinter.linters.flake8.python": "/path/to/venv/bin/python"
}
1

可以看看这个叫做 SublimePythonIDE 的工具(可以通过Package Control安装)。我觉得它默认是用Pyflakes来检查你的代码的。

它的文档里也有说明怎么设置,让它使用虚拟环境中的解释器。我觉得它在虚拟环境下不会主动检查你的代码,但你可以使用一些功能,比如自动补全、跳转到定义、查看文档等等。

在你的项目设置里:

{
    "folders": [
        {
           "path": "XYZ"
        },
        {
            "path": "ABC"
        }
    ],
    "settings": {
        "python_interpreter": "/path/to/some/virtualenv/bin/python"
    }
}

撰写回答