2014-06-18 65 views
0

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

在本文档中,为了做错误处理,你需要做的: from gdata import errors

而且为了创建驱动器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)。

我已经做了大量的研究,并且我被引导到很多不同的地方,我可能会混淆代码?有谁知道我做错了什么/有修复?预先感谢。

回答

1

这种导入错误通常是由用户安装另一个同名的模块引起的。你有没有可能在你的Python路径上有一些gdata.py

您可以验证这是否是导致问题:

import gdata 
print gdata.__file__ 

这告诉你在解释器加载从代码。

+0

我看到一个类似的帖子,他们的实际文件是gdata.py,但我认为我很清楚,因为我从来没有制作过这样的文件,但我也不知道如何检查(谢谢你给我看! )而且有可能出错了?我只是运行该代码,我得到'/home/dj/DailyReport/env/local/lib/python2.7/site-packages/gdata/__ init __。pyc',但我不确定这意味着什么。我应该删除该文件吗? (我可能应该提到,由于某种原因,我有每个文件2,一个是.py和另一个.pyc,但我不知道为什么或什么是) – davzaman

+0

.pyc文件只是一个优化:当解释器会导入一个模块,它会检查.py和.pyc文件。如果它只找到一个.py,或者如果.py比.pyc新,它将尝试创建一个新的.pyc文件,它是编译后的模块。 在这种情况下,它确实看起来好像您正在导入gdata模块,就像虚拟环境中的“pip”一样安装,所以看起来我的猜测可能是错误的,对不起。 – holdenweb

+0

哦,好的!谢谢你解释。是的,这有点奇怪。我认为他们的文件是旧的?我发现了一种不同的方式来做到这一点,它现在工作。为了创建电子表格,我使用gdata.docs.client代替发现。我认为他们文档的某些部分与新的gdata没有更新。无论哪种方式,我感谢您的帮助!再次感谢。 – davzaman