Python 模块冲突(tkinter 和 pylab)导致 Pycharm Python 控制台出现奇怪的不一致

Python modules clashing (tkinter & pylab) leading to weird inconsistency in Pycharm Python console

我已经简化了我的问题。 我有两个文件: test.py 和 ratios.py

ratios.py 只是一行:

import pylab as pl

test.py 是:

import tkinter as tk
import tkinter.font as font
import os
from ratios import *

def mainAlgo(username, cursor, code_groupe, tkWindow):
    root = tk.Tk()
    root.title("Title")
    root.resizable(False, False)

    myFont = font.Font(size=15)

    canvas = tk.Canvas(root, height=600, width=800)
    canvas.pack()

    background_image = tk.PhotoImage(file="dev/bg.png")
    background_label = tk.Label(root, image=background_image)
    background_label.place(relwidth=1, relheight=1)

    root.mainloop()

mainAlgo("", "", "", "")

如果我启动 test.py,一切正常。 如果我通过删除最后一行来修改 test.py,然后在控制台 like so 中输入 mainAlgo("", "", "", "") 我会出现以下错误:

Backend TkAgg is interactive backend. Turning interactive mode on.
mainAlgo("", "", "", "")
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:/Users/lh/Documents/Documents/Formation scolaire/Thèse/Travail/Algo/Version_Finale_Indep 12.00/test.py", line 18, in mainAlgo
    background_label = tk.Label(root, image=background_image)
  File "C:\Users\lh\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 3148, in __init__
    Widget.__init__(self, master, 'label', cnf, kw)
  File "C:\Users\lh\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 2572, in __init__
    self.tk.call(
_tkinter.TclError: image "pyimage1" doesn't exist

我正在使用 Windows 10、Python 3.9 和 PyCharm。

是不是很奇怪?两者应该是等价的(至少是这样教给我的)!

我将不胜感激 help/advice。

[编辑] 我提到 python 模块冲突,因为如果我不导入 pylab,我就不会出现这种不一致。但是,我找不到修复程序(我需要导入一个使用 pylab 的模块!!)。

master = root 添加到 tk.PhotoImage 解决了问题。更改 python 编辑器(VS Code 和 Pyzo)也解决了它(不添加 master = root) 我真的不知道为什么,欢迎任何解释。