已安装boto3但运行程序提示No module named 'boto3'求解决
先确认运行程序的Python解释器和安装boto3的是否一致
打开命令行,分别执行python --version和pip --version,看两者对应的Python版本是否匹配。很多时候是装了多个Python版本,pip给Python3装了boto3,但运行程序用的是另一个Python(比如Python2或者不同路径的Python3)。直接用安装boto3的Python路径运行脚本:L:\program files\python3\python.exe 你的脚本名.py检查Python的模块搜索路径(不是系统PATH)
系统PATH是让你能在命令行调用python/pip,Python找模块看的是自身的sys.path。打开Python交互窗口,执行import sys; print(sys.path),看输出里有没有L:\program files\python3\lib\site-packages。如果没有,两种解决办法:- 在脚本开头添加:
import sys; sys.path.append("L:\\program files\\python3\\lib\\site-packages")(注意转义反斜杠) - 设置系统环境变量
PYTHONPATH,把L:\program files\python3\lib\site-packages添加进去
- 在脚本开头添加:
排查虚拟环境干扰
如果你的程序是在虚拟环境中运行的,全局安装的boto3不会被虚拟环境识别。要么退出虚拟环境再运行,要么在虚拟环境里执行pip install boto3重新安装强制用当前Python的pip重装boto3
执行L:\program files\python3\python.exe -m pip install boto3 --upgrade,这样能确保boto3被安装到当前Python的site-packages目录,避免pip和Python不匹配的问题
内容的提问来源于stack exchange,提问作者Markis Gardner

