Python mss库导入报错:cannot import name 'mss'(疑似循环导入)
问题根因
该报错和mss库本身的bug无关,属于Python模块导入时的同名冲突问题。
排查解决步骤
- 第一优先级检查你当前运行的测试脚本文件名,禁止将脚本命名为
mss.py。Python导入模块时会优先读取当前运行目录下的文件,若脚本本身叫mss.py,执行from mss import mss时Python会尝试从当前这个未加载完成的脚本文件里查找mss类,直接触发循环导入报错。如果是文件名问题,把脚本重命名为其他非mss的名称(比如mss_test.py),同时删除同目录下的__pycache__文件夹以及所有mss相关的.pyc缓存文件,再重新运行代码即可。 - 若文件名无冲突,检查当前工作目录下是否存在自己创建的名为
mss的文件夹,这类自定义同名文件夹同样会被Python识别为可导入模块,触发冲突,直接将文件夹重命名为其他名称即可。 - 以上两点都排查完仍报错的话,清理环境里的mss残留:执行
pip uninstall -y mss卸载现有库,手动进入当前Python环境的第三方包目录,删除所有名称带mss的残留文件夹和文件,再重新执行pip install mss安装官方正式版本。
命名冲突修复完成后,运行以下官方示例代码即可正常生成全屏截图,默认输出文件为脚本同目录下的
monitor-1.png:
from mss import mss with mss() as sct: sct.shot()
内容的提问来源于stack exchange,提问作者Muhammad Ikhwan Perwira
相关产品推荐
相关产品推荐

