我刚从我的开发服务器将django项目移动到部署服务器,我在部署它时遇到了一些问题。我的apache配置如下:
<Location "/">
Order allow,deny
Allow from all
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE project.settings
PythonDebug On
PythonPath "['/home/django/'] + sys.path"
</Location>
Django确实有效,因为它呈现了Django调试视图,但是我收到以下错误:
ImportError at /
No module named app.urls
以下是Django给我的所有信息:
Request Method: GET
Request URL: http://myserver.com/
Django Version: 1.1.1
Python Version: 2.6.5
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
'django.contrib.admindocs',
'project.app']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware')
Traceback:
File "/usr/lib64/python2.6/site-packages/django/core/handlers/base.py" in get_response
83. request.path_info)
File "/usr/lib64/python2.6/site-packages/django/core/urlresolvers.py" in resolve
218. sub_match = pattern.resolve(new_path)
File "/usr/lib64/python2.6/site-packages/django/core/urlresolvers.py" in resolve
216. for pattern in self.url_patterns:
File "/usr/lib64/python2.6/site-packages/django/core/urlresolvers.py" in _get_url_patterns
245. patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/usr/lib64/python2.6/site-packages/django/core/urlresolvers.py" in _get_urlconf_module
240. self._urlconf_module = import_module(self.urlconf_name)
File "/usr/lib64/python2.6/site-packages/django/utils/importlib.py" in import_module
35. __import__(name)
Exception Type: ImportError at /
Exception Value: No module named app.urls
关于我为什么会收到导入错误的任何想法?
答案 0 :(得分:1)
将项目目录添加到sys.path
。
答案 1 :(得分:1)
我的猜测是,如果您只是将您的网址配置更改为引用“project.app.urls”而不是“app.urls”,那么您的问题将会得到解决。
您似乎已在项目的settings.py文件中的INSTALLED_APPS中列出了“project.app”,但您在urls.py中引用了“app.urls”。您需要标准化并始终引用“app”,并将PythonPath更改为包含项目目录,或始终引用“project.app”。
答案 2 :(得分:0)
我建议将virtualenv与mod_python一起使用。这里有一些说明:http://mydjangoblog.com/2009/03/30/django-mod_python-and-virtualenv/
它具有解决所有路径问题的优势,但也允许非常容易地安装额外的模块(甚至其他版本的django)。