python - 未找到 Python Linux Google drive API 客户端安装模块
问题描述
我正在尝试在我的本地 Linux 机器上开始使用来自 python 的 google drive API。我希望能够从我的本地机器将文件来回移动到 Google 驱动器。我昨天刚开始学习 Python,但在使用 Google 快速入门说明时遇到了问题。当我尝试使用 python3在https://developers.google.com/drive/v3/web/quickstart/python运行快速入门代码时,我收到此错误:
ImportError: No module named 'apiclient.discovery'
这是由文件顶部的这些导入语句产生的。
from __future__ import print_function
from apiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools
按照说明,我安装了我认为我需要的命令
pip install --upgrade google-api-python-client
但我收到了这个错误。我注意到如果我注释掉该行
from apiclient.discovery import build
然后其余的导入语句就可以了,脚本开始执行并且浏览器弹出要求进行身份验证,但是很明显,当它到达脚本中的“构建”函数调用时它会中断。我究竟做错了什么?
我已经尝试将包含模块的 lib 文件夹安装到我的脚本正在执行的本地目录中,但我认为这仅在您使用我所使用的谷歌应用引擎时才重要....不是吗?我不认为我是对的?当我这样做时,我尝试将导入语句更改为
from lib.googleapiclient.discovery import build
我得到了同样的错误,但我实际上已经在我的本地目录中的 lib/googleapiclient/discovery.py 中打开了该文件,并且代码是
...
def build(serviceName,
version,
http=None,
discoveryServiceUrl=DISCOVERY_URI,
developerKey=None,
model=None,
requestBuilder=HttpRequest,
credentials=None,
cache_discovery=True,
cache=None):
...
那么为什么这个导入语句不起作用呢?我也尝试过从
from apiclient.discovery import build
至
from googleapiclient.discovery import build
我得到同样的错误,没有名为“googleapiclient”的模块
我昨天用 pip 安装了 3rd 方模块,我从来没有遇到任何问题。这是怎么回事?谢谢你的帮助。
解决方案
检查您的 python 和 pip 版本,并尝试 pip freeze 检查已安装的包。
python --version pip --version pip freeze
请检查您的 python 版本,您的 pip 来自哪里(/usr/lib/python2.7 或 /usr/lib/python3.6 或其他 virtualenv)以及是否
google-api-python-client
在 pip freeze 的输出中。尝试重新安装
google-api-python-client
。sudo pip install --force-reinstall google-api-python-client
apiclient
是旧名称,因此最好googleapiclient
用于导入。from googleapiclient.discovery import module
推荐阅读
- angular - Angular 11 指令问题
- reactjs - 反应按钮在几个不同的组件中改变颜色
- string - 如何检查字符串是否同时包含大写和小写字符
- android-fragments - Android Studio 最相关的架构(Activity/Fragment、ViewModel)
- php - 在 PHP 中的 cURL 中安全使用授权令牌
- ruby-on-rails - Rspec - 覆盖 method_missing 和 respond_to_missing 后的参数错误
- bash - 删除 2 个符号之间的文本部分
- arm - ARM 寄存器定义 S3_0_C12_C12_7
- css - 在手机上以暗模式更改 html 电子邮件的背景颜色
- java - 如何使用 org.hibernate.criterion.Restrictions 代码将此 Hibernate 代码更改为 JPA。限制 API 有什么替代品吗?