2016-02-21 9 views

risposta

6

applicazione di Anaconda di PEP-484 Suggerimenti Tipo (influenzati dal PEP-3107 Annotazioni funzione e il mypy tipo statico checker) si applica solo a Python 3. Vorrei assumere il progetto che sta gettando errori si sta lintati da Python 2.

+0

Giusto! Non so come sia successo, ma è stato questo. – ardabro

+0

Questo non è in realtà corretto; I suggerimenti di tipo PEP-484 sono utilizzabili in Python 2 come pure. Vedi https://www.python.org/dev/peps/pep-0484/#type-comments e https://www.python.org/dev/peps/pep-0484/#stub-files per due modi su come per farlo funzionare. Attualmente sto usando i suggerimenti di tipo per portare una libreria Python 2 piuttosto grande a Python 3. Se Sublime Text non lo sa, che è possibile, allora il suo supporto per PEP-484 è incompleto, ma non è così il problema di PEP-484. – mcepl

+1

@mcepl Questa risposta è perfettamente corretta nel contesto del plugin Anaconda che l'OP stava usando in Sublime. Potrebbe essere possibile eseguire il back-port di tipo hinting/check a Py2 usando commenti o file stub come suggerito, ma la descrizione dell'annotazione della funzione PEP-3107 originale e l'espansione su di essa descritta in PEP-484 sono specifiche per Python 3. Ho aggiornato la risposta per riflettere questo. – MattDMo

8

Per espandere alla risposta @MattDMo 's, è possibile forzare il pacchetto Anaconda di utilizzare il python3 interprete premendo Cmd/Ctrl +Maiusc +P, quindi scegliendo:

Anaconda: Set Python Interpreter

quindi incollare nel percorso per l'interprete python3, che potete trovare con which python3:

Assicurarsi di mettere nel vostro percorso virtualenv se il codice utilizza pacchetti nel virtualenv: /path/to/.virtualenvs/nameofvenv/bin/python3

Se non sei in una virtualenv, utilizzare del python3 sistema:

/usr/bin/python3 o /usr/local/bin/python3 per homebrew di python3 su Mac.

L'impostazione corretta su python3 dovrebbe risolvere l'errore Invalid Syntax sulle annotazioni del tipo.

È inoltre possibile modificare il file di progetto direttamente per impostare i percorsi interprete:

{ 
    "build_systems": 
    [ 
     { 
      "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", 
      "name": "Anaconda Python Builder", 
      "selector": "source.python", 
      "shell_cmd": "\"/path/to/.virtualenvs/venvname/bin/python3\" -u \"$file\"" 
     } 
    ], 
    "settings": 
    { 
     "python_interpreter": "/path/to/.virtualenvs/venvname/bin/python3" 
    } 
} 
1

Ad ampliare la risposta @Nick Sweeting s', vale la pena di ricordare che tipo Hinting è stato introdotto per Python in versione 3.5, quindi se Anaconda utilizza un interprete con qualsiasi versione precedente di Python3, quindi segnalerà Type Hints come sintassi non valida. Per risolvere questo basta impostare l'interprete python alla versione 3.5 (o successiva).

Problemi correlati