首页 > 解决方案 > 在单元测试中使用 pandas 时的详细日志

问题描述

我正在尝试为我拥有的 python 代码库编写单元测试。当我导入 pandas 并运行测试时,我得到了非常详细的输出:

$HOME=XXXX
CONFIGDIR=XXXX/.config/matplotlib
matplotlib data path: XXXX/anaconda3/envs/YYYY/lib/python3.6/site-packages/matplotlib/mpl-data
loaded rc file XXXX/anaconda3/envs/YYYY/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc
matplotlib version 3.1.1
interactive is False
platform is linux
loaded modules: ['builtins', 'sys', ...

(当然,我对个人信息进行了 XXXX 和 YYYY。)这些日志的出现没有遵循我的记录器的规则,所以我假设它们来自 matplotlib 或 pandas,我不知道。我以前见过这个问题,但我不记得静音这些日志的答案是什么;拥有它们很烦人,特别是因为最后一行是一个非常长的列表(700 多个字符串,平均 20-30 个字符)。

我将如何去删除那些?我真的不需要它们。我试图生成一个最小的工作示例,但在我的代码库中,如果我有以下测试文件,我会生成日志:

from unittest import TestCase, main
import pandas as pd

# Logging
import logging

logger = logging.getLogger(__name__)
logging.basicConfig(
    level=logging.DEBUG,
    format="%(levelname)s %(asctime)s -- %(name)s: %(message)s",
    handlers=[
        # logging.FileHandler("example1.log"),
        logging.StreamHandler()
    ],
) 

如果我在我的代码库之外运行相同的文件(使用相同的 conda 环境,我能想到的一切都是相同的,请随时在我可能错过的事情的评论中寻求建议......),问题不不会发生。这就是 MWE 所能达到的程度。

标签: pythonpandasmatplotliblogging

解决方案


推荐阅读