这可能吗 > Sublime3 + Python linter + virtualenv?
我看了很多相互矛盾的StackOverflow帖子,浏览了所有相关的GitHub问题,还尝试了各种Sublime配置文件中的设置,最后实在没办法了,只好求助。
就像标题说的那样——我想用Sublime3 + Sublime Linter + 类似pylint的工具来检查我的Python代码,而这个Python是安装在特定项目的虚拟环境中的。我不太确定具体需要哪些工具,只要能用就行。
请问,有人知道这是否可能——更重要的是,怎么才能做到呢?
提前谢谢大家!
3 个回答
在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虚拟环境中运行。
更新一下,现在Sublime Linter建议根据每个项目的设置进行更新,具体如下:
"settings":
{
"SublimeLinter.linters.flake8.python": "/path/to/venv/bin/python"
}
可以看看这个叫做 SublimePythonIDE 的工具(可以通过Package Control安装)。我觉得它默认是用Pyflakes来检查你的代码的。
它的文档里也有说明怎么设置,让它使用虚拟环境中的解释器。我觉得它在虚拟环境下不会主动检查你的代码,但你可以使用一些功能,比如自动补全、跳转到定义、查看文档等等。
在你的项目设置里:
{
"folders": [
{
"path": "XYZ"
},
{
"path": "ABC"
}
],
"settings": {
"python_interpreter": "/path/to/some/virtualenv/bin/python"
}
}