2015-06-09 88 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