【问题标题】:Error importing modules from gdata从 gdata 导入模块时出错
【发布时间】:2014-06-18 05:35:06
【问题描述】:

我在我的应用程序中使用 virtualenv,并且在我的项目文件夹下的终端中使用 env/bin/pip install <lib name> 安装了 gdata、jira 和 gspread。我正在关注 Google API 中的文档,但它不起作用?

在文档中,为了进行错误处理,您需要执行以下操作: from gdata import errors

为了创建 Drive API 服务的实例(以便稍后创建文件),您需要执行以下操作: from gdata.discovery import build

但是文件不同,没有“发现”或“错误”,当我运行 env/bin/python run.py 时出现此错误:

Traceback (most recent call last):
  File "run.py", line 3, in <module>
    from gdata import errors
ImportError: cannot import name errors

(与发现相同)

我想也许他们在文档中的意思是from apiclient import errors,所以我尝试 pip 安装 apiclient 并用 apiclient 替换 gdata 但它仍然不起作用。

我下载了 gdata.zip 文件并将其解压缩并查看了示例代码(尤其是对于电子表格,因为这是我正在尝试创建的内容),他们采用了与文档截然不同的方法,我很困惑。我的目标是使用他们的 API 从代码中创建一个电子表格,但我不打算使用他们的 API 来编辑电子表格本身,我打算使用 gspread (Github)。

我做了很多研究,我被引导到很多不同的地方,我可能混淆了代码?有谁知道我做错了什么/有修复?非常感谢。

【问题讨论】:

    标签: python gdata importerror google-api-python-client


    【解决方案1】:

    这种导入错误通常是因为用户安装了另一个同名模块。你的 Python 路径上有没有 gdata.py

    您可以通过以下方式验证这是否是导致问题的原因:

    import gdata
    print gdata.__file__
    

    这告诉您解释器从哪里加载代码。

    【讨论】:

    • 我看到了一个类似的帖子,他们的实际文件是 gdata.py 但我认为我很清楚,因为我从未制作过这样的文件,但我也不知道如何检查(谢谢你给我看!),可能出了什么问题?我刚刚运行了那个代码,我得到了/home/dj/DailyReport/env/local/lib/python2.7/site-packages/gdata/__init__.pyc,但我不太确定这意味着什么。我应该删除那个文件吗? (我可能应该提到,出于某种原因,我每个文件都有 2 个,一个是 .py,另一个是 .pyc,但我不确定这是为什么或为什么)
    • .pyc 文件只是一种优化:当解释器导入一个模块时,它会检查 .py 和 .pyc。如果它只找到一个 .py,或者如果 .py 比 .pyc 新,它将尝试创建一个新的 .pyc 文件,该文件是已编译的模块。在这种情况下,它看起来好像您正在导入由 pip 之类的东西在虚拟环境中安装的 gdata 模块,所以看起来我的猜测可能是错误的,抱歉。
    • 哦,好的!谢谢你的解释。是的,它的行为有点奇怪。我认为他们的文档很旧?我找到了一种不同的方法,它现在正在工作。我没有发现,而是使用 gdata.docs.client 来创建电子表格。我认为他们文档的某些部分没有与较新的 gdata 保持同步。无论哪种方式,我都感谢您的帮助!再次感谢。
    猜你喜欢
    • 1970-01-01
    • 2020-09-14
    • 2016-07-02
    • 2017-09-08
    • 2015-12-10
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 2018-11-20
    相关资源
    最近更新 更多