Specify which python version pylint should evaluate for

泪湿孤枕 提交于 2019-11-30 08:54:24

问题


I'm using Sublime Text 3 With Pylinter to run pylint on my files.

However, on the same machine, I work on files for both python 2, and python 3 projects (the code is executed on one of several remote test-VMs, via SSH. I'm modifying the files by opening them over SMB. This is my home test-lab, and I'm finally sitting down to learn py3k).

Can I easily override the mechanism pylint uses to determine the python version it should lint for? Ideally, there would be an inline directive, but I have not had much luck finding anything.

I'm (editing) on Windows (the remote VMs are linux, but that' irrelevant here), for what it's worth.


回答1:


AFAIK Pylint lints for the version of Python it is running on and it is not possible to override it.




回答2:


You can try python2 -m pylint ... and python3 -m pylint .... That ensures that you use the right version.




回答3:


Expanding on @sthenault's answer and borrowing heavily from @simon's to a very similar question on askubuntu, the solution is to write a wrapper script around pylint that executes it with the appropriate version of the Python interpreter. Drop the following into a script called mypylint (or whatever) somewhere in your $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

Then, execute it like so: mypylint 2|3 PYLINT_ARGS. For instance:

mypylint 2 -f colorized module.py

I'm not sure how you can tie that into sublime-text, but it more generally answers the question of parallel versions of pylint. I also bundled the above solution into a gist.




回答4:


This is good, but I think the simplest thing is just to use virtualenv, and install pylint in each virtualenv. The correct pylint and python interpreter will be used.




回答5:


You should have two pylint installations, say pylint2 and pylint3, then write a wrapper script that will subprocess the desired one.




回答6:


You can install pylint3 which will evaluate for python 3.0, and pylint which will evaluate the code as python 2.7 by default.




回答7:


You can override on a per-project level in Sublime Text by changing the pylint executable setting in Project->Edit Project to include:

"settings":
{
    "SublimeLinter.linters.pylint.executable": ["py", "-3.4", "-m", "pylint"],
}

substituting 3.4 for your preferred flavour



来源:https://stackoverflow.com/questions/23052637/specify-which-python-version-pylint-should-evaluate-for

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!