已安装pyscreenshot仍报ModuleNotFoundError?pip与pip3列表不一致问题
问题分析与解决办法
你遇到的导入错误,核心原因就是虚拟环境的包管理工具和运行脚本的Python解释器没对应上,你说的pip3 list显示有pyscreenshot但实际找不到的矛盾,正是这个问题的表现。
矛盾出现的具体原因
大概率是这两个操作没在同一个虚拟环境下执行:
- 要么你查
pip3 list时没激活虚拟环境,查到的是系统全局的包; - 要么运行脚本时没激活虚拟环境,用的是系统默认Python,而系统里没装pyscreenshot;
- 还有可能是虚拟环境里的
pip和pip3指向不同版本的Python,导致装包和运行用的不是同一套环境。
解决步骤
先确保虚拟环境处于激活状态
不同系统激活命令不同:- Windows(cmd):
venv\Scripts\activate.bat - Windows(PowerShell):
venv\Scripts\Activate.ps1 - Linux/macOS:
source venv/bin/activate
激活成功后,命令行开头会显示虚拟环境名称(比如(venv))。
- Windows(cmd):
在激活的虚拟环境内重新安装pyscreenshot
直接运行以下命令,不用加3,虚拟环境里的pip已经对应当前环境的Python版本:pip install pyscreenshot==3.0验证安装并运行脚本
先执行pip list确认pyscreenshot出现在列表里,再运行你的脚本:import pyscreenshot as ImageGrab # fullscreen im=ImageGrab.grab() im.show()
以后操作虚拟环境时,记得先激活再装包、运行脚本,避免全局环境和虚拟环境混用。
内容的提问来源于stack exchange,提问作者user19667022
相关产品推荐
相关产品推荐

