使用WSGI部署Django:应用程序导入错误

时间:2010-02-24 06:54:33

标签: python django apache wsgi

我是apache,linux和python世界的新手。我正在尝试使用WSGI(推荐的方式)在apache上部署django应用程序。

我的django项目目录结构如下......

  • /
  • /apache/django.wsgi
  • / apps / #I将我的所有应用都放在此目录中
  • /应用/提供商/
  • /应用/购物/
  • /应用/...
  • /中间件/
  • ...

在apache中我有以下设置......

LoadModule wsgi_module modules/mod_wsgi.so
WSGIScriptAlias / D:/Projects/project-name/apache/django.wsgi

<Directory "D:/Projects/project-name/apache/">
  Allow from all
  Order deny,allow
</Directory>

django.wsgi文件有以下代码......

import os
import sys
import settings

sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/..')

os.environ['DJANGO_SETTINGS_MODULE'] = 'project_name.settings'

import django.core.handlers.wsgi

application = django.core.handlers.wsgi.WSGIHandler()

在运行时,我在appache的error.log中发现了这个错误...

  • 此行发生错误。来自apps.providers.models import Provider
  • 导入错误:没有名为providers.models的模块

我不知道为什么它会给我这个错误。它应该从apps.providers.models加载Provider,但它正在尝试从providers.model加载它。

任何解决方案都将受到赞赏。

由于

1 个答案:

答案 0 :(得分:0)

试试这个:

sys.path.insert(0, os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))

它将你的项目文件夹放在第一个位置,它使用os.path.join来一个目录(在windows上可能更好)。

可能是你的python路径上有另一个“apps”模块。