在远程server运行python脚本调用scanpy时,其内部调用了matplotlib,此时发生报错如下:
...
File "~/miniconda3/envs/scanpy/lib/python3.8/site-packages/matplotlib/font_manager.py", line 961, in json_dump
_log.warning('Could not save font_manager cache {}'.format(e))
OSError: [Errno 122] Disk quota exceeded
...
File "~/miniconda3/envs/scanpy/lib/python3.8/site-packages/matplotlib/font_manager.py", line 961, in json_dump
_log.warning('Could not save font_manager cache {}'.format(e))
OSError: [Errno 122] Disk quota exceeded
此类报错已经在matplotlib的issue页面上反映过,已经解决。
此为developer的直接回复,另外issue提出者把cache_dir软连接到了空间充足的目录也解决了问题。
我没有找到其具体做法,使用了另外一种解决方案:
直接在python脚本的起始位置加上如下代码,重新设定configs的生成位置
import os
os.environ['MPLCONFIGDIR'] = os.getcwd() + "/configs/"
import matplotlib.pyplot as plt
然后重新运行即可,未见该报错。
python cbs_nametest.py --loom_file sdata.loom --raw_matrix ./exp --output_dir ./report
参考文章:
[Bug]: import failure when disk quota exceeded #22986