tqdm动态导入可在笔记本电脑和脚本中使用



我正在尝试导入一个使用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.notebooktqdm.std之间进行选择。

来源:https://tqdm.github.io/docs/shortcuts/#tqdmautonotebook

相关内容

最新更新