1

私はApache、Linux、およびPythonの世界で初めてです。WSGI (推奨される方法) を使用して apache に django アプリケーションをデプロイしようとしています。

私のdjangoプロジェクトのディレクトリ構造は次のとおりです...

  • /
  • /apache/django.wsgi
  • /apps/ #すべてのアプリをこのディレクトリに置きます
  • /アプリ/プロバイダー/
  • /アプリ/ショッピング/
  • /アプリ/...
  • /ミドルウェア/
  • ...

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 でこのエラーを見つけました...

  • この行でエラーが発生しました。from apps.providers.models import Provider
  • インポート エラー: providers.models という名前のモジュールがありません

なぜこのエラーが発生するのかわかりません。プロバイダーを apps.providers.models からロードする必要がありますが、providers.model からロードしようとしています。

どんな解決策でも大歓迎です。

ありがとう

4

1 に答える 1

1

これを試して:

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

プロジェクト フォルダーを最初の位置に配置し、os.path.join を使用して 1 つ上のディレクトリに移動します (Windows ではこれが適している場合があります)。

Python パスに別の "apps" モジュールがある可能性があります。

于 2010-02-24T10:48:11.250 に答える