ModuleNotFoundError:没有名为'google'的模块

1 投票
2 回答
98 浏览
提问于 2025-04-14 15:25

我有一个非常简单的程序,是从谷歌的工作空间复制过来的,导入的部分代码如下:

import os.path

from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError

当我运行这段代码时,总是出现:

from google.auth.transport.requests import Request
ModuleNotFoundError: No module named 'google'

我已经查看了这里所有相关的问题,安装了各种库,但还是没能解决。我创建了一个requirements.txt文件,并用pip show命令查看了我在C:\Python310\Lib\site-packages\中安装的当前版本,这个路径已经添加到我的环境变量中,还有C:\Python310\和C:\Python310\Scripts。

openai==1.14.0
langchain==0.1.12
streamlit==1.32.2
google==3.0.0
google-auth==2.28.2
requests-oauthlib==1.4.0
google_auth_oauthlib==1.2.0
oauthlib==3.2.2
google-api-python-client==2.122.0

在VSCode中,requirements文档显示没有缺失的引用,但我还是一直收到同样的错误。我甚至通过VSCode的智能提示手动重新创建了每个导入语句,也没有问题。所以VSCode能识别这些模块,但我还是遇到那个错误。

有没有人能帮我一下?

谢谢你的时间。

更新:完整代码示例*

# Imports
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build
import base64
from email.mime.text import MIMEText


# Authenticate
SCOPES = ['https://www.googleapis.com/auth/gmail.readonly', 
          'https://www.googleapis.com/auth/gmail.modify']

creds = Credentials.from_authorized_user_file('token.json', SCOPES)

service = build('gmail', 'v1', credentials=creds)
service.users().messages().list(userId='me', maxResults=10).execute()

2 个回答

0

我的示例代码都使用了

pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib

我觉得你可能缺少了google-auth-httplib2这个库

这个在Gmail的官方示例中也有提到,具体可以查看安装Google客户端库的部分

0

我有两个建议,你可以试试看。

  1. 确认一下你安装所需软件包的那个目录(叫做site-packages)是否在你的PYTHONPATH环境变量里。你可以在你的Python脚本中打印一下 sys.path,这样就能看到Python会去哪些目录找软件包。

  2. 再仔细检查一下那些必需的软件包(google、google-auth、google-auth-oauthlib、google-api-python-client)是否安装在正确的site-packages目录里。你可以用 pip list 来查看已经安装的软件包和它们的版本。

撰写回答