2011-06-17 37 views
0

我有一個關於將模塊導入到我的django-nonrel應用程序的問題。我把python-oauth2的oauth2模塊放到項目目錄中。它給我的錯誤使用應用程序引擎的django-nonrel模塊導入錯誤sdk

Could not import main.views. Error was: No module named _io 

當我試圖在我的「myapp/views.py」文件中導入該模塊。 但如果我使用

./manage.py deploy 

它只是罰款將項目部署到應用引擎(即它不是引發異常像上面並返回一個HttpResponse對象)。

我現在用的是1.5.0版本的App Engine SDK巨蟒,並在djangoappengine文件的安裝部分中提到

django-nonrel 
djangoappengine 
djangotoolbox 
django-autoload 
django-dbindexer 

庫。

起初我以爲可能是一個的oauth2問題,但我創建了具有裏面只有初始化 .py文件的虛擬模塊,但我有同樣的情況(即沒有本地App Engine上的問題,但導入錯誤機器)像其他庫。

sys.path中包含以下正當進口的oauth2線exectued

['/home/can/projects/appengine/twitterspots', '/home/can/projects/appengine/twitterspots/djangoappengine/lib', '/home/can/projects/appengine/twitterspots/../twitterspots/djangoappengine/lib', '/usr/local/google_appengine', '/usr/local/google_appengine/lib/antlr3', '/usr/local/google_appengine/lib/webob', '/usr/local/google_appengine/lib/graphy', '/usr/local/google_appengine/lib/yaml/lib', '/usr/local/google_appengine/lib/ipaddr', '/usr/local/google_appengine/lib/simplejson', '/usr/local/google_appengine/lib/fancy_urllib', '/usr/local/lib/python2.7/dist-packages/virtualenv-1.6.1-py2.7.egg', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PIL', '/usr/lib/pymodules/python2.7/gtk-2.0', '/usr/lib/python2.7/dist-packages/gst-0.10', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7', '/usr/lib/pymodules/python2.7/ubuntuone-storage-protocol', '/usr/lib/pymodules/python2.7/ubuntuone-control-panel', '/usr/lib/pymodules/python2.7/ubuntuone-client'] 

之前,它有一個 '/ home/CAN /項目/應用服務引擎/ twitterspots'(項目目錄)作爲第一項,以便導入該目錄下的模塊時不應該出現問題。

我的項目的文件結構如下:

-twitterspots 
+autoload 
+dbindexer 
+django 
+djangoappengine 
+djangotoolbox 
+httplib2 
+main(my django app) 
+oauth2 
+templates 
app.yaml 
index.yaml 
indexes.py 
__init__.py 
manage.py 
settings.py 
urls.py 

我怎樣才能解決這個問題,並開始導入一個Python模塊,這樣我不必須部署到應用程序引擎看到的變化,每次我改變了這個項目?

任何幫助將不勝感激。

更新1:

啞模塊正在導入與完全沒有問題(和它無關_IO模塊看到我的回答如下。)。我想我顯示了屬於oauth2模塊的以前的錯誤頁面。

回答

0

我追溯了這個問題,最終發現導入httplib2模塊的oauth2模塊導入了gzip模塊並導入了io模塊。問題是io模塊將_io模塊導入解釋器本身的內置模塊(python 2.7)。由於我沒有機會不使用gzip庫,我決定安裝也運行在應用程序引擎上的Python 2.5.2。安裝了Python 2.5.2作爲一個獨立的安裝後(通過化妝altinstall),我開始使用

python2.5 manage.py runserver 

命令服務器,並有正在執行的「進口的oauth2」線的時候沒有導入錯誤。

所以作爲一個總結:使用安裝在應用程序引擎上的相同python版本,否則你將會遇到類似的問題。

相關問題