指定pylint应评估的python版本
我在使用Sublime Text 3,并通过Pylinter来对我的文件运行pylint
。
不过,在同一台机器上,我同时处理Python 2和Python 3的项目文件(这些代码是在几台远程测试虚拟机上通过SSH执行的。我是通过SMB打开文件来修改它们的。这是我的家庭测试实验室,我终于坐下来学习Python 3了)。
我能否轻松地覆盖pylint用来判断应该使用哪个Python版本的机制?理想情况下,我希望有一个内联指令,但我找了很久也没找到相关的信息。
顺便说一下,我是在Windows上编辑的(远程虚拟机是Linux,但这在这里并不重要)。
8 个回答
在Sublime Text中,你可以针对每个项目单独设置,方法是通过项目设置来更改pylint的可执行文件。具体步骤是:在菜单中选择“项目”->“编辑项目”,然后添加以下内容:
"settings":
{
"SublimeLinter.linters.pylint.executable": ["py", "-3.4", "-m", "pylint"],
}
在这里,你可以把3.4替换成你喜欢的版本号。
这样做不错,但我觉得最简单的方法就是使用虚拟环境(virtualenv),然后在每个虚拟环境里安装pylint。这样就能使用正确的pylint和Python解释器了。
在@sthenault的回答基础上,借鉴了@simon在askubuntu上对一个非常相似问题的解答,解决办法是写一个包装脚本,来调用mypylint
(或者你喜欢的名字)的脚本里,放在你的$PATH
路径下:
#! /usr/bin/env bash
python_interpreter="python${1}"
pylint_args="-f colorized ${@:2}"
pylint_import=$(cat << PYTHON
import sys
import pkg_resources
__requires__ = "pylint"
sys.exit(
pkg_resources.load_entry_point("pylint", "console_scripts", "pylint")()
)
PYTHON
)
$python_interpreter -c "$pylint_import" $pylint_args
然后,你可以这样执行它:mypylint 2|3 PYLINT_ARGS
。比如:
mypylint 2 -f colorized module.py
我不太确定怎么把这个和sublime-text结合起来,但这更一般地回答了关于
你可以试试 python2 -m pylint ...
和 python3 -m pylint ...
。这样可以确保你使用的是正确的版本。
据我所知,Pylint会根据它运行的Python版本来检查代码的质量,而且无法更改这个设置。