首先,很抱歉,这不是发布此类问题的地方。
问题在于,无论何时执行脚本,matplotlib显然都在绘制图形(我可以从旧图形中识别出它,因此它不是完全随机的图形)。让我进一步解释。
该文件是测试文件module_test.py
,我一直在尝试识别此问题可能来自何处。现在我写了
import matplotlib.pyplot as plt
plt.show()
字面意思位于脚本顶部,当我通过python -m package.tests.module_test
运行测试时,将弹出“随机”图。它还会与其他任何测试脚本一起弹出,但是在命令控制台中使用python时不会出现。否则测试可以正常运行。
有人知道为什么会这样吗?我尝试从与该问题相关的所有文件夹中删除__pycache__
,但没有帮助。
这是图片。这是我几个月前所做的一份实验室报告中的情节。
答案 0 :(得分:3)
通过仿真MATLAB GUI,matplotlib
(特别是但不仅是pyplot
)是有状态的。这是一种礼貌的说法,它具有全局变量以及随之而来的所有调试难题。
尤其是,每个创建的图都将无限期保留,以便可以通过其“图号”进行引用。也可以是pyplot
的“当前数字”。
从包中导入模块隐式导入包含的包。这就是仅导入模块不应具有任何副作用(而只能定义类,函数和常量)的原因之一。远处看不见的副作用和动作的结合会产生如此处观察到的欢闹。