问题描述
明明有tqdm,然而还保错.
# 多进程
import time
from multiprocessing import Pool
import tqdm
Traceback (most recent call last):
File "/media/chen/LENOVO_USB_HDD/PaperCode/VAC_CSLR/preprocess/dataset_preprocess_readme.py", line 56, in <module>
s = run_mp_cmd(1,add, range(10000))
File "/media/chen/LENOVO_USB_HDD/PaperCode/VAC_CSLR/preprocess/dataset_preprocess_readme.py", line 38, in run_mp_cmd
outputs = list(tqdm(p.imap(process_func, process_args), total=len(process_args)))
TypeError:
原因分析与解决方案:
可能是:
1.采用pip安装了tqdm后仍然报错,百度后发现可能是因为pip和conda的安装包路径不同,导致pip安装的包在conda命令下找不到。
由此可见pip安装的pointmlp环境下的tqdm不在sys.path中,因此无法Import进来。因此在api.py文件补充一句:
sys.path.append(‘…/anaconda3/envs/pointmlp/lib/python3.7/site-packages’)
此路径下安装有tqdm,由此conda得以正常使用。经过分析,应该是某一次采用conda将tqdm库删除了,导致后来conda再也无法找到这个库。可以将上述路径下的tqdm库复制到conda的搜索路径,这样也可以让conda找到tqdm。
2.导入不对
换成:from tqdm import tqdm