2014-01-31 4 views
1

Я использовал pyflakes и pylint для статической проверки на наличие ошибок в моем коде, но они не очень полезны, поскольку они не входят в файлы, которые использует входной файл. Например, если у меня есть опечатка в функции, которую я использую из другого файла, и эти программы блаженно сообщают об ошибках. В этот момент они становятся бесполезными для меня. Есть ли лучшие альтернативы, которые я могу использовать? Я думаю, если я использую eclipse, это может помочь мне избавиться от этих опечаток, пока я пишу сам код, но я использую emacs для кодирования. Могут ли быть варианты/инструменты, которые я могу использовать внутри emacs? Я только что нашел опечатку, сообщенную после того, как мой код работает несколько минут.Рекурсивный контролер кода для python

EDIT: Для уточнения здесь структура каталогов кода -

src/ 
    driver.py 
    DB/ 
    DBHelper.py 
    Analyze/ 
    file1.py 
    file2.py 
    Helper/ 
    HelperClasses.py 

driver.py где код работает с и использует код из других файлов в списке.

См., Например, file1.py использует некоторые функции из HelperClasses.py, и я сделал опечатку при использовании имени функции. Запуск pyflakes в файлах1.py сообщает об ошибках, потому что он не видит HelperClasses.py при анализе file1.py

Я ищу, чтобы найти инструмент, который также смотрит на другие файлы, которые он использует по мере необходимости.

+0

Что вы подразумеваете под «файлами, которые использует входной файл» и «функцией, которую я использую из другого файла». Используете ли вы разные модули и импортируете их? Если это так, вам, вероятно, просто нужно запустить свою статическую проверку кода на всех ваших модулях (хотя я не знаю достаточно о них сам, чтобы дать специфику). – Blckknght

+0

@Blckknght - Я уточнил свой вопрос лучше. Какие-либо предложения? – user220201

+1

Ну, контролер должен будет различать «ваши» другие файлы и системные библиотеки. Я думаю, лучше всего написать небольшой скрипт и пройти весь исходный каталог и проверить каждый файл в нем. Или, возможно, у этих шашек уже есть выбор для этого ... –

ответ

1

Вы можете попробовать flake8 (это более актуально), я использую его в возвышенном виде как плагин. Существует также для Emacs (поиск по github и интернету, есть несколько примеров).

To run flake8 just invoke it against any directory or Python module: 
$ flake8 --max-complexity 12 coolproject 
Смежные вопросы