我使用Sublime Text 3与Pylinter在我的文件上运行pylint
。
然而,在同一台机器上,我处理python 2和python 3项目的文件(代码在几个远程测试VM中的一个上通过SSH执行。我通过打开修改文件这是我的家庭测试实验室,我终于坐下来学习py3k了。
我可以轻松覆盖pylint用于确定它应该lint的python版本的机制吗?理想情况下,会有一个内联指令,但我找不到任何好运。
我在Windows上编辑(编辑)(远程虚拟机是linux,但这里不相关),这是值得的。
答案 0 :(得分:15)
AFAIK Pylint会发现它正在运行的Python版本,并且无法覆盖它。
答案 1 :(得分:11)
您可以尝试python2 -m pylint ...
和python3 -m pylint ...
。这可以确保您使用正确的版本。
答案 2 :(得分:4)
扩展@ sthenault的答案并从@ simon大量借用 askubuntu 上的very similar question,解决方案是在pylint
周围编写一个包装脚本,用以执行它适当版本的Python解释器。将以下内容放入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联系起来,但它更普遍地回答了pylint
的并行版本的问题。我还将上述解决方案捆绑到gist。
答案 3 :(得分:3)
这很好,但我认为最简单的方法就是使用virtualenv,并在每个virtualenv中安装pylint。将使用正确的pylint和python解释器。
答案 4 :(得分:0)
你应该有两个pylint安装,比如pylint2和pylint3,然后编写一个包装器脚本,它将对所需的一个进行子处理。
答案 5 :(得分:0)
你可以安装pylint3,它将评估python 3.0,以及pylint,默认情况下会将代码评估为python 2.7。
答案 6 :(得分:0)
您可以在Sublime Text中按项目级别覆盖,方法是在Project-> Edit Project中将pylint可执行设置更改为:
"settings":
{
"SublimeLinter.linters.pylint.executable": ["py", "-3.4", "-m", "pylint"],
}
用3.4代替您喜欢的口味