Il commento di @sayth alla risposta accettata è stato ciò che mi ha attirato qui: scrivo sia script Python 2 che Python 3 e voglio essere in grado di verificare sia il set di regole corretto. installando pylint usando pip3 install pylint
scrive un breve script in /usr/local/bin
cui richiama l'interprete python3 e sembra quindi supporre che tutti i file da controllare siano script python 3.
per ovviare a questo, ora ho i seguenti file:
~/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 poi, poiché mi piace usare pylint direttamente dal menu "Build Commands" di Geany e non posso specificare comandi diversi per gli script python 2 e python 3, ho anche
~/bin/pylint
:
#!/bin/bash
if [[ $(head -n 1 "${@: -1}") == *python3* ]]
then
# python3 file
pylint3 "$@"
else
pylint2 "$@"
fi
che invia la versione corretta annusando lo shebang.
Non perfetto, certamente, ma funzionale e, forse, utile per gli altri.