我正在尝试导入一个使用tqdm的函数。在某些情况下,我会在笔记本中使用此功能,而在其他情况下,则会在脚本中使用它。有以下选项:
# my_lib.py
from tqdm.notebook import tqdm # option 1
from tqdm import tqdm # option 2
# some function that uses tqdm
def my_fn():
for i in tqdm(range(10)):
pass
当我使用选项1时,当在脚本run.py
中调用函数时,它会打印出奇怪的结果。
# run.py
from my_lib import my_fn
if __name__ == '__main__':
my_fn()
当我使用选项2时,当在笔记本test.ipynb
中调用该函数时,它会打印出奇怪的结果。
# test.ipynb
from my_lib import my_fn
my_fn()
如何在该函数中使用tqdm并使其在两种情况下都能正确工作?
迟到总比不迟到好。
只需使用以下导入即可,
from tqdm.autonotebook import tqdm
这将自动在tqdm.notebook
和tqdm.std
之间进行选择。
来源:https://tqdm.github.io/docs/shortcuts/#tqdmautonotebook