2009-07-29 105 views
1

最近我問了一個question關於apache/mod_wsgi中的一個錯誤來識別python腳本目錄。 社區很好地回答了導致安裝成功的問題。現在我有一個不同的錯誤,服務器守護程序(當然,在技術上是一個Windows服務,我說番茄你說...)沒有發現任何的車型,下面是完整的回溯:在Apache上運行的Django錯誤/ mod_wsgi

環境:

Request Method: GET 
Request URL: `http://localhost/polls/` 
Django Version: 1.0.2 final 
Python Version: 2.6.2 
Installed Applications: 
['django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.admin', 
'mysite.polls'] 
Installed Middleware: 
('django.middleware.common.CommonMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware') 

模板錯誤: 在模板C:\用戶\馬科斯\文件\ djangotemplates \調查\調查_ list.html,誤差在1號線 捉住而渲染的異常:沒有這樣的表:polls_poll

 
     1 : {% if object_list %} 
     2 :  <ul> 
     3 :  {% for poll in object_list %} 
     4 :   <li> <a href="{{poll.id}}/">{{ poll.question }} </a> </li> 
     5 :  {% endfor %} 
     6 :  </ul> 
     7 : {% else %} 
     8 :  <p>No polls are available.</p> 
     9 : {% endif %} 
     10 : 

Tra ceback:

 File "C:\Python26\lib\site-packages\django\core\handlers\base.py" in get_response 
     86.     response = callback(request, *callback_args, **callback_kwargs) 
    File "C:\Python26\lib\site-packages\django\views\generic\list_detail.py" in object_list 
      101.  return HttpResponse(t.render(c), mimetype=mimetype) 
    File "C:\Python26\lib\site-packages\django\template\__init__.py" in render 
      176.   return self.nodelist.render(context) 
    File "C:\Python26\lib\site-packages\django\template\__init__.py" in render 
      768.     bits.append(self.render_node(node, context)) 
    File "C:\Python26\lib\site-packages\django\template\debug.py" in render_node 
      81.    raise wrapped 
Exception Type: TemplateSyntaxError at /polls/ 
Exception Value: Caught an exception while rendering: no such table: polls_poll 

某處有人建議我使用manage.py dbshel​​l和腳本回應:
錯誤:您似乎沒有安裝「sqlite3的」計劃或您的路徑上。

但仍然Django runserver完美運行該應用程序。我沒有看到環境中發生了什麼變化,以至於很難將網絡應用程序搞砸。請幫忙!

回答

6

您沒有數據庫。目前還不清楚爲什麼你沒有sqlite3驅動。但是,您沒有sqlite3,並且沒有數據庫。

  1. 運行manage.py執行syncdb建數據庫。

    • 請務必使用與生產實例相同的settings.py

    • 確保您的settings.py具有正確的驅動程序。您正在使用SQLite3,請確保使用絕對路徑名稱。

    • 一定要使用相同的PYTHONPATH和工作目錄的生產,以確保所有的模塊都居然發現

  2. 運行普通的SQL看到你實際建立數據庫。

  3. 運行Django /admin應用程序以查看數據庫中的內容。

SQLite3包含在Python中。爲了避免丟失,您的Python安裝必須被破壞或不完整。從頭開始重新安裝。

0

嘗試manage.py syncdb確保django可以連接到數據庫並創建所有表。

+0

已經這樣做了,沒有發生。我認爲該腳本沒有發現任何錯誤 – marcoslhc 2009-07-29 22:42:15

1

我解決了將sqlite3二進制文件目錄添加到PYTHONPATH環境變量的問題。

0

剛解決了類似的問題。我想你必須將你的應用程序名稱添加到settings.py中的INSTALLED_APPS列表中。

0

當我試圖運行manage.py dbshel​​l時,這些都不適合我,但後來是3年後,而我在10.7上。我說我的MySQL路徑到我的PATH變量是這樣的:

PATH = $ PATH:/usr/local/mysql-5.5.16-osx10.6-x86_64/bin

其實,這是更好地把這個到您的.profile文件中。如果你還沒有Mac OS 10.7,你可能需要創建其中的一個。在終端窗口中,輸入cd,然後按回車鍵返回到您的主目錄,然後執行vi .profile來創建新文件,然後插入:

export PATH = $ PATH:/ usr/local/mysql -5.5.16-osx10.6-x86_64/bin

我在這裏給大量的細節給那些不知道像我這樣頭頂的人。下次登錄時,路徑將自動設置。現在從.profile文件中設置它,只需要:

。 ./.profile

要驗證您的新的路徑變量,這樣做:

回聲$ PATH

相關問題