原子模块导入错误

Import error with atom module

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

我也尝试导入整个 atom 模块。

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

成功了。那到底出了什么问题?

听起来模块有错误或者您丢失了一些文件。基于 this 我会怀疑后者。

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

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

这是对我有用的东西。如果我有选择的话,我不会选择这个解决方案,但它确实有效!

首先,我将 atom 和 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.module。因此,我继续将上述文件中使用 atom.module 的所有实例更改为仅 module。代码运行很好。

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

  1. 卸载atom(pip uninstall atom)并让gdata在它的setup.py文件中安装它

  2. pip install tlslite

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

我找到了解决方案here

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

重新安装 gdata-python-client