Подавить предупреждения в PyDev - PullRequest
7 голосов
/ 31 августа 2011

Я использую следующее в начале всех модулей в моем проекте Python:

import setup_loggers

setup_loggers - это модуль, который делает именно это. Оператор import гарантирует, что независимо от того, какой модуль загружен первым, регистраторы настроены и готовы.

Однако, поскольку я не использую модуль setup_loggers позже в файле, я получаю предупреждение PyDev (маленький желтый маркер). Я получаю это предупреждение для всех своих модулей, поэтому оно блокирует меня от просмотра других предупреждений в обозревателе пакетов PyDev.

Есть ли способ подавить предупреждение для определенной строки (строка import выше) в PyDev?
Есть ли другие идеи о том, как преодолеть это раздражение?

1 Ответ

26 голосов
/ 31 августа 2011

В PyDev, когда в строке есть ошибка, вы можете нажать Ctrl + 1, и она покажет возможность игнорировать это предупреждение в этой строке (в этом случае будет добавлен комментарий: # @ UnusedImport - - которые вы могли бы добавить вручную - в этой строке и эта ошибка / предупреждение будут игнорироваться).

Теперь перейдем к лучшей стратегии для вас (чтобы вам не приходилось импортировать этот модуль повсюду): в Python, когда вы выполняете импорт пакета, родители будут импортированы раньше.

т.е:.

/my_project
/my_project/__init__.py
/my_project/submodule.py
/my_project/package
/my_project/package/__init__.py

Когда вы импортируете my_project.submodule или my_project.package, он сначала должен импортировать (и выполнить) код в /my_project/__init__.py

Таким образом, лучшей стратегией для вас будет только добавление этого импорта в /my_project/__init__.py (и всякий раз, когда импортируется любой подмодуль, регистраторы уже будут настроены).

Это просто не будет работать, если у вас есть коллекция файлов, которые разбросаны в корне PYTHONPATH и в файле, который вы выполняете как __main__ (так как он не импортирует этот файл, он просто получит его содержимое и выполнить его - но всякий раз, когда этот файл импортирует что-либо из / my_project, все будет настроено).

...