Ho due progetti python in sublimetext3 con anaconda. Per alcuni motivi misteriosi, solo in uno di essi anaconda segnala il tipo hinting (PEP 0484) come errori di "sintassi non valida" (per entrambi: parametri e tipi di funzione). Quale può essere il motivo?anaconda + sublimetext, riporta il tipo di suggerimento come errori
risposta
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"
}
}
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).
- 1. Visualizza errori di prezzemolo nel suggerimento bootstrap
- 2. PyCharm scorre come SublimeText
- 3. PHP tipo Traversable suggerimento
- 4. Testo sublime 3: Anaconda mostra errori di sfilacciamento hotkey?
- 5. Come digitare il suggerimento
- 6. Riporta il ramo TFS all'originale
- 7. tipo di oggetto suggerimento in php
- 8. Suggerimento di tipo variabile in Netbeans (PHP)
- 9. PhpStorm generare setter con il tipo di suggerimento
- 10. Disabilitare il tipo di suggerimento nei servizi JSON WCF
- 11. Suggerimento di tipo "altro" in metodi magici?
- 12. Come determinare ActiveModel :: Errori tipo di convalida
- 13. Come installare il pacchetto in anaconda?
- 14. Perché è necessario il suggerimento sul tipo in PHP?
- 15. Richiesto suggerimento/suggerimento tecnologico
- 16. Come eliminare il suggerimento di completamento
- 17. Silverlight: come modellare il suggerimento di convalida?
- 18. Estensione del suggerimento del tipo per PHP
- 19. Come abilitare il rendering MathJax in Sublimetext Markdown Preview
- 20. Soft-wrap come sublimetext in Atom
- 21. Errori di tipo "classe" C++
- 22. gprof non riporta il tempo accumulato
- 23. Tipo suggerimento non applicato nei costruttori defrecord
- 24. Suggerimento iteratore di rigorose entità di tipo in PHPDoc
- 25. Come importare pyspark in anaconda
- 26. Come installare PyPy in anaconda
- 27. C'è un suggerimento di tipo PHPDoc per un parametro booleano?
- 28. PHP tipo di ritorno suggerimento, oggetto O un booleano?
- 29. Come spostare il suggerimento di correzione UITextView sopra il testo
- 30. Come rendere SublimeText supporta le annotazioni di Python 3?
Giusto! Non so come sia successo, ma è stato questo. – ardabro
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
@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