2013-10-01 36 views
0

我對Python(2.7)和Django(1.3.1)很新穎,我不確定下一步調試此問題的位置。有一點背景,這個應用程序在運行Ubuntu的EC2實例的生產環境中運行得很好。我無法在運行Mountain Lion的開發機器上運行它。我遵循標準慣例,並使用virtualenv來正確保存所有內容。TemplateSyntaxError在渲染時捕獲ImportError:無法導入名稱prepare_lookup_value

錯誤是發生設法使這個漂亮的無害行時:

<meta property="facebook:login_url" content="{% url socialauth_begin 'facebook' %}" /> 

所引發的異常:

Exception Value: Caught ImportError while rendering: cannot import name prepare_lookup_value 
Exception Location: /dev/Sites/whattest/env/lib/python2.7/site-packages/grappelli/views/related.py in <module>, line 15 

line 15: from django.contrib.admin.util import prepare_lookup_value 

我認爲這是某種形式的路徑問題,但我在這個時候,在哪裏/如何追蹤它。

+0

從django.contrib.admin.util導入prepare_lookup_value「'python -c」會給你帶來什麼? –

+1

你不應該真的在使用Django 1.3 - 這是兩年過時了。 –

+0

'python -c「from django.contrib.admin.util import prepare_lookup_value」'給我'ImportError:無法導入名稱prepare_lookup_value' – standingwave

回答

2

當前版本的django-grappelli與Django 1.4和1.5兼容;所以我假設django.contrib.admin.util.prepare_lookup_value正在由django-grapelli導入,在Django 1.3中根本沒有。

無論如何,我不明白爲什麼有人會用這樣一箇舊版本的Django開始一些新的東西,除非它是出於傳統原因。

UPDATE:實際上,這種精確的問題似乎並沒有成爲區分prepare_lookup_value於2011年引入1.3發佈於2013年,由git blame決定。但是,該功能的位置已從django.contrib.{util to utils}更改,並且您的代碼正試圖導入django.contrib.admin.util.prepare_lookup_value

由於您似乎正在使用(至少一些)軟件包的舊版本,因此我建議您將venv中的所有軟件包(包括django-grapelli)升級到最新版本,並查看問題是否仍然存在。

+0

這基本上讓我找到了正確的方向,搞清楚我有不同版本的幾個不同的版本儘管使用virutalenv並使用requirements.txt文件來安裝所有軟件包。我拒絕升級所有的軟件包,直到我找出問題所在,現在我會去做。謝謝! – standingwave

+0

很高興聽到! –

相關問題