2015-06-09 81 views
2
from __future__ import division 
import sys, time, os.path, magic 
import atom.data, gdata.client, gdata.docs.client, gdata.docs.data 

完整的代码是在http://planzero.org/blog/2012/04/13/uploading_any_file_to_google_docs_with_python与原子模块导入错误

我在Ubuntu 14.04 VirtualBox上工作。我正在使用Python 2.7.6。我使用最新版本成功安装了atom和gdata模块。但是,我的代码在导入模块时给我以下错误。

Traceback (most recent call last): 
    File "test14.py", line 16, in <module> 
    import atom.data, gdata.client, gdata.docs.client, gdata.docs.data 
    File "/usr/local/lib/python2.7/dist-packages/atom/data.py", line 24, in <module> 
    import atom.core 
ImportError: No module named core 

我也试图导入整个原子模块代替。

import atom, gdata.client, gdata.docs.client, gdata.docs.data 

提供了以下错误:

Traceback (most recent call last): 
    File "test14.py", line 16, in <module> 
    import atom, gdata.client, gdata.docs.client, gdata.docs.data 
    File "/usr/local/lib/python2.7/dist-packages/gdata/client.py", line 35, in <module> 
    import atom.client 
    File "/usr/local/lib/python2.7/dist-packages/atom/client.py", line 27, in <module> 
    import atom.http_core 
ImportError: No module named http_core 

两个core.py和http_core.py存在于/usr/local/lib/python2.7/dist-packages/atom/。我试图直接导入这些模块

import atom.http_core, atom.core 

它的工作。那么到底发生了什么问题?

+0

重新安装gdata-python-client请确保'/usr/local/lib/python2.7中有一个包名'core'或模块名'core.py'/DIST-包/原子/'。或者从'/ usr/local/lib/python2.7/dist-packages/atom/data.py'文件中取出'import atom.core'这一行。 –

+0

@BiRico:core.py在那个目录下。所以我试图注释掉import atom.core语句。 data.py会抛出更多错误。这不起作用。 –

回答

0

这是为我工作的东西。如果我有选择的话,这不是一种解决方案,但它确实奏效!

首先,我将原子和gdata目录从/usr/local/lib/python2.7/dist-packages复制到我的工作目录。我这样做是因为它可以更轻松地编辑任何文件。 Python首先在工作目录中查找导入模块。我获得了复制目录和文件的权限。另外,我保留原始位置的原件。

接下来我编辑了atom的data.py文件。我将进口说明从import atom.core更改为import core

接下来我编辑了atom的client.py文件。我将导入声明从import atom.http_core更改为import http_core

这似乎工作,因为我没有得到任何错误在这些问题了。现在我意识到,在上述两个实例中,import语句都试图从atom包内导入模块为atom.module。因此,我继续将上述文件中使用atom.module的所有实例更改为module。代码运行良好。

0

听起来像模块有错误,或者你错过了一些文件。基于this我会怀疑后者。

如果您知道原子模块文件的位置(可能位于PYTHON_PATH的某个目录中),请检查是否存在atom\core.py文件。如果没有,请检查安装说明(您可能需要先运行一些脚本)或重新安装模块。

如果失败,您可以尝试注释掉atom.core导入,但很可能它在atom.data的某个位置使用,您将只会得到更多错误。

+1

core.py存在。当我尝试从data.py注释掉它时,会引发更多错误。 data.py需要导入core.py. –

+0

core.py文件与data.py文件位于同一'atom'目录,并且里面还有一个'__init __。py'文件? – hajtos

+0

是的。我在atom目录中也看到一个'__init __。py'。 –

2

当我试图安装时(Mac OSX 10.10.5,python版本2.7.6),我遇到了同样的麻烦。我做了以下

  1. 卸载原子(PIP卸载原子),并让gdata安装在其setup.py文件

  2. pip install tlslite

  3. 运行gdata-python-client-master/tests/run_data_tests.py文件

我发现解决方案here

0

如果您已经使用pip安装了atom,并尝试使用pip卸载进行卸载,并且它不起作用。然后使用sudo rm -rf <path_to_atom>手动删除它,然后使用sudo python setup.py install