SublimeText2 et SublimeLinter - Vérification de la syntaxe pour Python3 -

1. Définissez un nouveau Linter

SublimeLinter/sublimelinter/modules/python3.py

python3.py


import re
from base_linter import BaseLinter, INPUT_METHOD_FILE


CONFIG = {
    'language': 'Python3',
    'executable': 'flake8',
    'test_existence_args': ['--version'],
    'lint_args': '{filename}',
    'input_method': INPUT_METHOD_FILE #Seulement lors de la sauvegarde. INPUT si vous souhaitez vous enregistrer en temps réel_METHOD_TEMP_Make it FILE
}


class Linter(BaseLinter):
    def parse_errors(self, view, errors, lines, errorUnderlines, violationUnderlines, warningUnderlines, errorMessages, violationMessages, warningMessages):
        for line in errors.splitlines():
            match = re.match(r'^.+:(?P<line>\d+):(?P<offset>\d*):?\s+(?P<error>.+)', line)
            if match:
                error, line, offset = match.group('error'), match.group('line'), match.group('offset')
                if not error.startswith('E501'):
                    self.add_message(int(line), lines, '[{0}: {1}]'.format(offset, error), errorMessages)

E501 est exclu si vous le souhaitez.

2. Créez une syntaxe appelée Python3

cd ~/Library/Application Support/Sublime Text 2/Packages/Python
cp Python.tmLanguage Python3.tmLanguage

Je ne suis pas sûr, j'ai donc changé uniquement le nom et le scopeName en Python3 et source.python3 OK si Python 3 apparaît dans Set Syntax

3. Fichier de configuration de Sublime Linter

{
    "sublimelinter_executable_map": {
        "python3": "Chemin vers flake8 pour python3"
    }
}
  1. fleke8

Le fichier utf-8 meurt s'il n'est pas ASCII

La solution de contournement consiste à définir la variable d'environnement PYTHONIOENCODING sur utf-8 et LC_CTYPE sur en_US.utf-8. Pour les utilisateurs de Mac, écrivez dans /etc/launchd.conf. Si vous n'aimez pas l'impact, vous pouvez écrire votre propre script de démarrage (équivalent à la commande flake8) et écrire les paramètres d'encodage à l'intérieur. Définissez l'environnement interne de sorte que sys.getdefaultencoding () == 'utf-8', locale.getpreferredencoding (False) == 'utf-8'.

Mourir avec des octets

Cela ressemble à un bug dans flake8. flake8 / pyflakes.py: par 319

NUM = STR =	ELLIPSIS = ignore

J'ai ajouté BYTES et cela a fonctionné.

Recommended Posts

SublimeText2 et SublimeLinter - Vérification de la syntaxe pour Python3 -
Syntaxe Ruby et Python ~ branch ~
Python # Comment vérifier le type et le type pour les super débutants
Rechercher les fuites de mémoire dans Python
Rechercher des commandes externes avec python
Vérifiez et déplacez le répertoire en Python
Différences entre la syntaxe Python et Java
Vérifier et recevoir le port série en Python (vérification du port)
6 bibliothèques Python pour un développement et un débogage plus rapides
Rechercher et vérifier la matrice inverse en Python
Différence entre Ruby et Python (syntaxe de base)
[Python of Hikari-] Chapitre 05-09 Syntaxe de contrôle (utilisation correcte des instructions for et while)
30/10/2016 else pour Python3> pour:
python [pour moi]
[Explication pour les débutants] Syntaxe et concept de base de TensorFlow
Grammaire de méthode instantanée pour Python et Ruby (étude)
Raisonnement causal et recherche causale par Python (pour les débutants)
vérification de la grammaire python
(Windows) Causes et solutions de contournement pour UnicodeEncodeError dans Python 3
[Mise à jour] Aide-mémoire de la syntaxe Python pour la boutique Java
avec syntaxe (Python)
[Hikari-Python] Chapitre 09-02 Classes (Création et instanciation de classes)
[Python / Chrome] Paramètres de base et opérations de scraping
Fichiers PDF et sites utiles pour apprendre Python 3
Syntaxe de contrôle de la syntaxe Python
Installer Python et les bibliothèques pour Python sur MacOS Catalina
Vérifiez le temps de traitement et le nombre d'appels pour chaque processus avec python (cProfile)
Janken Poi en Python pour les débutants (réponses et explications)
Paramètres initiaux pour l'utilisation de Python3.8 et pip sur CentOS8
[Python of Hikari-] Chapitre 06-04 Fonctions (arguments et valeurs de retour 3)
Recherche de balises pixiv et enregistrement d'illustrations à l'aide de Python
Squelettes extensibles pour Vim utilisant Python, Click et Jinja2
Lecture de texte Python pour plusieurs lignes et une ligne
J'ai essayé pipenv et asdf pour le contrôle de version Python
Liste des bibliothèques Python pour les data scientists et les data ingénieurs
Création d'un environnement de travail Docker R et Python
[Python] Mesure et affiche le temps nécessaire au traitement
Benchmarks langage C, Java, Python avec factorisation prime
Vitesse de lecture Python netCDF4 et imbrication d'instructions for
[Hikari-Python] Chapitre 07-01 Gestion des exceptions (erreurs et exceptions)
[Python] Batailles et combinaisons de sortie (imbrication pour les instructions et les instructions if)
Préférences pour jouer à Wave dans Python PyAudio et PortAudio
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer chapitres 1 et 2
Problèmes et contre-mesures pour le débordement de la binarisation d'Otsu en Python
Écrire des tests en Python pour profiler et vérifier la couverture
Confrontation de dictionnaire anglais-anglais pour Python et anglais lié à l'IA
[Hikari-Python] Chapitre 06-01 Fonctions (fonctions intégrées et définitions de fonctions)
Compilez et installez MySQL-python pour python2.7 sur Amazon Linux
À propos de la création et de la modification de thèmes personnalisés pour Python IDLE
[Python of Hikari-] Chapitre 06-03 Fonctions (arguments et valeurs de retour 2)
Recherche récursive de fichiers et de répertoires en Python et sortie
[Python] Chapitre 05-01 Syntaxe de contrôle (opérateur de comparaison et branchement conditionnel)
[Python of Hikari-] Chapitre 05-05 Syntaxe de contrôle (pour instructions-boucles multiples-)
[python] Compresser et décompresser
À propos de Python for loop
Astuces Python et Numpy
[Python] pip et roue
Bases de Python ② pour déclaration