El comentario de @sayth a la respuesta aceptada fue lo que me atrajo aquí: escribo los scripts python 2 y python 3, y quiero poder verificarlos con el conjunto de reglas correcto. la instalación de pylint usando pip3 install pylint
escribe una secuencia de comandos corta en la /usr/local/bin
que se invoca el intérprete de python3 y, por lo tanto, parece suponer que todos los archivos que se verificarán son secuencias de comandos de python 3.
para solucionar esto, ahora tengo los siguientes archivos:
~/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')()
)
y ~/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')()
)
y luego, como me gusta usar pylint directamente desde el menú "Build Commands" de Geany, y no puedo especificar diferentes comandos para los scripts python 2 y python 3, también tengo
~/bin/pylint
:
#!/bin/bash
if [[ $(head -n 1 "${@: -1}") == *python3* ]]
then
# python3 file
pylint3 "$@"
else
pylint2 "$@"
fi
que distribuye la versión correcta olfateando el shebang.
No perfecto, ciertamente, pero funcional y, quizás, útil para otros.