Python脚本无法导入google.cloud.storage模块问题排查
问题分析:ModuleNotFoundError: No module named 'google.cloud' 已安装模块仍报错
问题场景
运行以下Python脚本:
#!/usr/local/bin/python3.9 from google.cloud import storage client = storage.Client() for blob in client.list_blobs('my-bucket', prefix='some/path'): print(str(blob))
执行后出现报错:
▶ ./test.py Traceback (most recent call last): File "/Users/pkaramol/Desktop/./test.py", line 3, in <module> from google.cloud import storage ModuleNotFoundError: No module named 'google.cloud'
但通过pip freeze | grep -i google确认google-cloud-storage相关依赖已安装:
▶ pip freeze | grep -i google google-api-core==2.11.0 google-auth==2.15.0 google-cloud==0.34.0 google-cloud-core==2.3.2 google-cloud-storage==2.7.0 google-crc32c==1.5.0 google-resumable-media==2.4.0 googleapis-common-protos==1.57.0
核心原因
脚本指定的Python解释器(/usr/local/bin/python3.9)和安装模块时使用的pip对应的Python环境不匹配。
系统中通常存在多个Python版本,pip默认关联的可能是另一个Python环境(比如系统自带版本、其他自定义安装版本),导致你用pip安装的模块被放在了对应Python版本的site-packages目录下,而python3.9的环境中并没有这些模块,因此脚本执行时找不到依赖。
解决方法
方法一:用指定Python版本的pip重新安装模块
直接调用python3.9的pip工具,确保模块安装到目标环境:
/usr/local/bin/python3.9 -m pip install google-cloud-storage
方法二:验证pip与Python的对应关系
先确认当前pip对应的Python版本:
pip --version
如果输出的版本不是3.9,说明pip属于其他环境,此时可以尝试用版本匹配的pip命令安装:
pip3.9 install google-cloud-storage
方法三:修改脚本的解释器路径
如果希望复用已安装的模块,将脚本第一行的shebang改为pip对应的Python路径。比如通过pip --version得到路径为/usr/bin/python3,则修改脚本开头:
#!/usr/bin/python3
内容的提问来源于stack exchange,提问作者pkaramol
相关产品推荐
相关产品推荐

