Answers:
Python 2和3是不同的野兽。如果将脚本安装到一个版本的站点包中,则不会将其安装到另一个版本中。
我会通过pip安装它,但是您需要正确版本的pip。
sudo apt-get install python3-pip
sudo pip-3.3 install pylint
这将替换您的2.7版本。我们可以通过检查确认这一点less $(which pylint)
:
#!/usr/bin/python3.3
# EASY-INSTALL-ENTRY-SCRIPT: 'pylint==1.0.0','console_scripts','pylint'
__requires__ = 'pylint==1.0.0'
import sys
from pkg_resources import load_entry_point
if __name__ == '__main__':
sys.exit(
load_entry_point('pylint==1.0.0', 'console_scripts', 'pylint')()
)
sudo apt install pylint3
。
@sayth对接受的答案的评论吸引了我-我同时编写了python 2和python 3脚本,并且希望能够对照正确的规则集进行检查。使用安装pylint会pip3 install pylint
编写一个简短的脚本,/usr/local/bin
该脚本将调用python3解释器,因此似乎要假定所有要检查的文件都是python 3脚本。
要变通解决此问题,我现在有以下文件:
~/bin/pylint2
:
#!/usr/bin/python2
# EASY-INSTALL-ENTRY-SCRIPT: 'pylint','console_scripts','pylint'
__requires__ = 'pylint'
import sys
from pkg_resources import load_entry_point
if __name__ == '__main__':
sys.exit(
load_entry_point('pylint', 'console_scripts', 'pylint')()
)
和~/bin/pylint3
:
#!/usr/bin/python3
# EASY-INSTALL-ENTRY-SCRIPT: 'pylint','console_scripts','pylint'
__requires__ = 'pylint'
import sys
from pkg_resources import load_entry_point
if __name__ == '__main__':
sys.exit(
load_entry_point('pylint', 'console_scripts', 'pylint')()
)
然后,因为我喜欢直接从Geany的“构建命令”菜单中使用pylint,而且我无法为python 2和python 3脚本指定不同的命令,所以我也有
~/bin/pylint
:
#!/bin/bash
if [[ $(head -n 1 "${@: -1}") == *python3* ]]
then
# python3 file
pylint3 "$@"
else
pylint2 "$@"
fi
通过嗅探shebang来分发正确的版本。
当然,它不是完美的,但是功能性的,也许对其他人有用。
作为在Python 2和3上运行pylint的另一种方法,请注意,您可以使用Python的-m
开关来运行当前版本的Python中系统上安装的模块,因此您可以
$ python2 -m pylint
$ python3 -m pylint
明确选择您想要的那个。如果需要,可以将它们设置为别名或shell脚本。
这是对simons的很好回答。我只是以不同的方式考虑过它,并认为它对于那些寻求针对多个版本的python / pylint的解决方案的人可能有用。
使用virtualenv可以轻松完成3.x的pylint的安装并保持2.7的默认值或反之。
创建您的虚拟环境。在您的环境中激活运行
pip install pylint
在这里,您可以找出您的环境将python和pylint放在哪里
which pylint
#/home/$USER/Desktop/python/awesomeSauce/bin/pylint
然后
which python
#/home/$USER/Desktop/python/awesomeSauce/bin/python
然后,只需设置您的想法以使用该插入路径和/或python路径即可。我知道它可与Sublime3配合使用,因此我将在下面的示例中使用它。
在顶部标题菜单的Sublime中,选择“首选项”>“软件包设置”>“ Pylinter”>“设置”-“用户”。
这只是一个json对象。设置
"python_bin": "python",
// to the python path found earlier by 'which python'
"python_bin": "/home/$USER/Desktop/python/awesomeSauce/bin/python",
// dont for get the coma if it is the last element.
// We also change the pylint_path from
"pylint_path": null,
// to
"pylint_path": "/home/$USER/Desktop/python/awesomeSauce/bin/pylint",
// sorry I cant make the formatting look any better.
保存文件。我还制作了一个文件副本,并将其保存在该venv目录中,以便在需要此linter时通过复制和粘贴此配置轻松进行切换。当我不这样做时,我只是将Pylinter.sublime-settings重新设置为用户的默认设置,这似乎是我找到的最简单的方法。对不起,我不知道Windows命令,否则我会把它们放在那里。