Чтобы программно предотвратить появление таких предупреждений, настройте свой код так, чтобы:
import warnings
if __name__ == '__main__':
with warnings.catch_warnings():
warnings.simplefilter('ignore', category=ImportWarning)
unittest.main()
Источник: https://stackoverflow.com/a/40994600/328469
Обновление:
@billjoie, безусловно, прав. Если OP решит сделать ответ 52463661 принятым ответом, я согласен с этим. Я могу подтвердить, что следующее эффективно для подавления таких предупреждающих сообщений во время выполнения с использованием Python версий 2.7.11, 3.4.3, 3.5.4, 3.6.5 и 3.7.1:
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import unittest
import warnings
class TestPandasImport(unittest.TestCase):
def setUp(self):
warnings.simplefilter('ignore', category=ImportWarning)
def test_01(self):
import pandas # noqa: E402
self.assertTrue(True)
def test_02(self):
import pandas # noqa: E402
self.assertFalse(False)
if __name__ == '__main__':
unittest.main()
Однако я думаю, что OP должен рассмотреть возможность более глубокого исследования целей кода приложения модульных тестов и попытаться определить конкретный импорт пакета или операцию, которая вызывает фактическое предупреждение, а затем подавить предупреждение как можно ближе к место в коде, где происходит нарушение. Это позволит избежать подавления предупреждений во всем классе модульного теста, что может непреднамеренно скрывать предупреждения от других частей программы.
Вне модульного теста, где-то в коде приложения:
with warnings.catch_warnings():
warnings.simplefilter('ignore', category=ImportWarning)
# import pandas
# or_ideally_the_application_code_unit_that_imports_pandas()
Может потребоваться небольшая работа, чтобы изолировать конкретное место в коде, которое вызывает предупреждение, или использовать стороннее программное обеспечение, которое вызывает предупреждение, но разработчик получит более четкое представление о причине предупреждения, и это будет только улучшить общую ремонтопригодность программы.
person
Nels
schedule
30.07.2018
pandas
, который полагается на кучу зависимостей. - person Mysterio   schedule 26.06.2018