迁移Flask项目至新机器后遇No module named 'google'问题求助
Flask项目导入Google Cloud包失败的解决方法
问题背景
旧机器上用PyCharm开发的Flask项目运行正常,克隆到新机器后,执行导入语句时出错:
from google.cloud import firestore, storage
报错信息:
ModuleNotFoundError: No module named 'google'
本地已安装的相关依赖版本:
Python 3.9.13 google-api-core 2.11.0 google-api-python-client 2.97.0 google-auth 2.17.3 google-auth-httplib2 0.1.0 google-cloud-core 2.3.2 google-cloud-firestore 2.11.1 google-cloud-storage 2.10.0
已尝试的无效操作:
- 通过pip安装requirements.txt,以及PyCharm自动安装依赖
- 多次执行升级/安装命令(均提示“Requirement already satisfied”):
pip3 install --upgrade google-cloud-storage pip3 install --upgrade google-cloud-firestore pip install google-api-python-client pip install --upgrade google-api-python-client pip install google-cloud pip install google-cloud-storage pip install google.cloud.storage pip install google.cloud - 卸载并重新安装google-cloud-storage
- 修改pyvenv.cfg中的Python安装路径
问题定位
排查发现项目使用自定义名称为wag的虚拟环境(非默认的venv),虽已激活wag环境,但系统仍尝试调用venv环境的路径:
pip show google-cloud输出显示包安装在wag环境中:Name: google-cloud Version: 0.34.0 Summary: API Client library for Google Cloud Home-page: https://github/GoogleCloudPlatform/google-cloud-python Author: Google Cloud Platform Author-email: googleapis-publisher@google.com License: Apache 2.0 Location: c:\users\owner\pycharmprojects\site\wag\lib\site-packages Requires: Required-by:- 执行
import sys; print(sys.path)输出,最后两项为错误的venv环境路径:['C:\\Users\\Owner\\Pycharmprojects\\Site', 'C:\\Users\\Owner\\Pycharmprojects\\Site', 'C:\\Users\\Owner\\AppData\\Local\\Programs\\Python\\python39\\python39.zip', 'C:\\Users\\Owner\\AppData\\Local\\Programs\\Python\\python39\\DLLs', 'C:\\Users\\Owner\\AppData\\Local\\Programs\\Python\\python39\\lib', 'C:\\Users\\Owner\\AppData\\Local\\Programs\\Python\\python39', 'C:\\Users\\Owner\\Pycharmprojects\\pythonProject\\venv', 'C:\\Users\\Owner\\Pycharmprojects\\pythonProject\\venv\\lib\\site-packages']
进一步发现PyCharm配置异常:
- 运行/调试配置默认使用venv环境的Python3.9解释器,切换到wag选项时,显示关联的是Python3.12版本(但本地未安装3.12,全局Python版本为3.9.13)
- 切换到错误的3.12环境后,报错变为:
ImportError: cannot import name 'firestore' from 'google.cloud' (unknown location)
- 已知Firestore不支持Python3.10及以上版本,必须使用Python3.9环境
解决步骤
1. 重建Python3.9版本的wag虚拟环境
当前wag环境被错误关联到不存在的3.12版本,直接重建最可靠:
- 删除现有wag文件夹:
rmdir /s C:\Users\Owner\PycharmProjects\Site\wag - 用Python3.9可执行文件创建新虚拟环境:
C:\Users\Owner\AppData\Local\Programs\Python\Python39\python.exe -m venv wag - 激活新创建的wag环境:
C:\Users\Owner\PycharmProjects\Site\wag\Scripts\activate.bat - 重新安装项目所有依赖:
pip install -r requirements.txt
2. 配置PyCharm使用正确的解释器
- 打开PyCharm,依次进入
File > Settings > Project: Site > Python Interpreter - 点击右上角的齿轮图标,选择
Add - 选择
Existing environment,找到新wag环境的Python解释器路径:C:\Users\Owner\PycharmProjects\Site\wag\Scripts\python.exe - 点击
OK,将该解释器设为项目默认解释器
3. 修正运行/调试配置
- 点击PyCharm右上角的运行配置下拉框,选择
Edit Configurations - 找到你的Flask项目运行配置,在
Python interpreter选项中选择刚添加的wag(Python3.9)解释器 - 保存配置后,重新启动项目
4. 验证环境正确性
运行以下代码确认环境配置:
import sys print(sys.version) print(sys.path)
正常输出应满足:
- 显示Python版本为3.9.13
sys.path中包含C:\Users\Owner\PycharmProjects\Site\wag\lib\site-packages路径- 无多余的venv环境路径
内容的提问来源于stack exchange,提问作者Eye Scream
相关产品推荐
相关产品推荐

