O comentário de @sayth à resposta aceita foi o que me atraiu aqui - eu escrevo os scripts python 2 e python 3, e quero poder verificar o conjunto de regras correto. A instalação do pylint usando pip3 install pylint
grava um script curto em /usr/local/bin
que invoca o interpretador python3 e parece, portanto, assumir que todos os arquivos a serem verificados são scripts python 3.
para contornar isso, agora tenho os seguintes arquivos:
~/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')()
)
e ~/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')()
)
e depois, porque gosto de usar o pylint diretamente do menu "Build Commands" do Geany, e não consigo especificar comandos diferentes para os scripts python 2 e python 3, também tenho
~/bin/pylint
:
#!/bin/bash
if [[ $(head -n 1 "${@: -1}") == *python3* ]]
then
# python3 file
pylint3 "$@"
else
pylint2 "$@"
fi
que envia a versão correta cheirando o shebang.
Não é perfeito, certamente, mas funcional e, talvez, útil para os outros.