2009-09-07 68 views
0

我现在用fastcgi在Dreamhost上运行django,而且我变得非常奇怪的行为。首先,服务器运行Python 2.3。在我的电脑上,我运行的是2.6,所有的源代码都可以运行。当我把它放在我的主机上时,没有任何工作。现在,当我pkill命令蟒蛇,然后加载一个页面,第一个错误有关语法错误,在“类Item_list()”行抱怨:不一致的Django错误

from dtms.models import * 

class Item_list(): 
    def __init__(self, list = None, house_id = None): 
     self.list = list 
     self.house_id = house_id 

    def ret_list(self): 
     return self.list 

然后,如果我再重新加载它不改变任何东西,我得到这个错误:

Django Version: 1.1 alpha 1 SVN-10114 
Python Version: 2.3.5 
Installed Applications: 
['django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.admin', 
'mysite.dtms'] 
Installed Middleware: 
('django.middleware.common.CommonMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware')
Traceback: 
File "/home/victor/django/django_src/django/core/handlers/base.py" in get_response 
    82.    callback, callback_args, callback_kwargs = resolver.resolve(
File "/home/victor/django/django_src/django/core/urlresolvers.py" in resolve 
    184.    for pattern in self.url_patterns: 
File "/home/victor/django/django_src/django/core/urlresolvers.py" in _get_url_patterns 
    212.    raise ImproperlyConfigured("The included urlconf %s doesn't have any" 

Exception Type: ImproperlyConfigured at /dtms/login/ 
Exception Value: The included urlconf mysite.urls doesn't have anypatterns in it 

任何想法?

回答

3

class Item_list():

你不能在Python 2.3中包含一个空的继承列表。语法似乎有所改变,允许它now但不是then

它通常会被写成:

class Item_list: 

,如果你不希望任何基类。但是现在通常你会想从对象派生出新风格的类。

我对你的部署环境了解不多,但是一般情况下,当你试图导入某些东西并得到一个异常时,它可能会在sys.modules中留下部分初始化的模块,这会阻止将来的导入尝试他们,导致模块的属性和行为不在预期的地方,否则莫名其妙的错误。

一般而言,一旦导入失败,您应该考虑丢失环境并重新开始,但我不知道您的Django部署如何应对类似错误和进程重新启动问题。也许最初的错误让一个解释器在没有将预期的东西写入url_patterns或其他东西的情况下运行。

+0

我想我现在正在遇到这种情况。现在,我收到错误,当我明确导入它们时,找不到类型。我做了pykill,但还有什么我需要做的? – victor 2009-09-07 21:18:17

+0

您可能需要重新启动服务器。我不知道你是如何部署你的应用程序的; fastcgi服务器是否嵌入了Python解释器,例如,它们不是作为单独的'python'进程启动的,pkill会捕获这些进程?配置服务器以正确响应被改变的脚本不是标准化的,但应该有*某种方法来做到这一点...... – bobince 2009-09-07 23:30:35