开发者

Deploying Django with WSGI: App Import Error

开发者 https://www.devze.com 2022-12-21 06:02 出处:网络
I am new in apache, linux and python world. I am trying to deploy django application on apache using WSGI (the recommended way).

I am new in apache, linux and python world. I am trying to deploy django application on apache using WSGI (the recommended way).

My django project directory structure is as follows...

  • /
  • /apache/django.wsgi
  • /apps/ #I put all my apps in this directory
  • /apps/providers/
  • /apps/shopping/
  • /apps/...
  • /middleware/
  • ...

In apache I have following settings....

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 file has got following code...

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()

On running I found this error in the appache's error.log...

  • Error occured on this line. from apps.providers.models import Provider
  • Import Error: No module named providers.models

I don't know why it is giving me this error. It should have loaded Provider from apps.providers.models but it is trying to load it from providers.model.

Any solution will be appreciated.

Thanks


Try this:

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

It puts your project folder at the first position and it uses os.path.join to go one directory up (which might be better on windows).

It might be the case that there is another "apps" module on your python path.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号