我正在使用在python中显示进度条的tqdm包。
tqdm还为木星笔记本(tqdm_notebook())提供了一个小部件,允许一个漂亮的“网络式”进度条。
我的问题是,我在code.py文件中有一个tqdm进度条,导入到jupyter笔记本中。
在从常规python (即Ipython、IDLE、shell)运行tqdm时,我希望tqdm以正常形式运行:
from tqdm import tqdm
a = 0
for i in tqdm(range(2000)):
a+=i但是当我将code.py导入木星时,我希望它使用tqdm_notebook()
from tqdm import tqdm_notebook as tqdm
a = 0
for i in tqdm(range(2000)):
a+=i如何使python区分环境?
我发现这个职位建议检查get_ipython().__class__.__name__或'ipykernel' in sys.modules,但它没有区分笔记本和其他Ipython (比如Spyder或空闲)。
发布于 2017-07-07 15:54:24
显然,在这里使用sys.argv是有帮助的。
import sys
print sys.argv在Jupyter中运行此代码将具有以下参数:
['C:\\Users\\...\\lib\\site-packages\\ipykernel\\__main__.py',
'-f',
'C:\\Users\\...\\jupyter\\runtime\\kernel-###.json']当然,从shell/空闲运行时不会有jupyter行。
因此,code.py中的导入语句应该是:
if any('jupyter' in arg for arg in sys.argv):
from tqdm import tqdm_notebook as tqdm
else:
from tqdm import tqdm发布于 2019-06-11 15:34:09
tqdm现在有一个autonotebook模块。来自文档
通过使用autonotebook子模块,可以让tqdm自动选择控制台版本还是笔记本版本:
from tqdm.autonotebook import tqdm
tqdm.pandas()注意,如果在笔记本中运行,这将发出一个TqdmExperimentalWarning,因为它不可能区分jupyter笔记本和jupyter控制台。使用auto而不是autonotebook来抑制此警告。
https://stackoverflow.com/questions/44952863
复制相似问题