0

このディレクトリからhttp://www.mysite.comへのリクエストを処理するように Apache をセットアップしました。

/var/www/html/www.mysite.com

Django サイトは /var/www/html/www.mysite.com/mysite にあります。

/mysite/app/foo をリクエストすると、次のエラーが表示されます。

(大きなスタック トレース) AttributeError: 'module' オブジェクトに属性 'common' がありません

「myapp.common」は、settings.py ファイルの INSTALLED_APPS にあるすべての Django アプリ ( 「django.contrib.admin」など) の後にリストされている最初の項目です。リストされているモジュールの順序を変更すると、Django は、遭遇したアプリケーションの 1 つの最初のパスでチョークします。

mysite.settings を見つけているため、Python インポート パスは正しいようです。

<場所 "/mysite/">
    SetHandler python-プログラム
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE mysite.settings
    PythonOption django.root /mysite
    PythonDebug オン
    PythonPath "['/var/www/html/www.mysite.com'] + sys.path"
</場所>

何が問題なのですか?実際のリストに「mysite.common」が含まれているのに、「common」について不平を言っているのは奇妙です。

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'mysite.common',
    ....

これは Django のバグですか、それとも設定が間違っていますか? おそらく、外部依存関係をインポート パスに追加する必要がありますか? Django 開発サーバーで問題なく動作します。

4

3 に答える 3

1

mysiteディレクトリに__init__.pyファイルが含まれていますか? package としてマークする必要があります。

于 2009-01-22T19:18:34.677 に答える
0

mysite.commonパッケージは下に保存されてい/var/www/html/www.mysite.com/mysite/commonますか?その場合は、commonの代わりにを使用してみてください。mysite.commonINSTALLED_APPS

于 2009-02-11T02:19:52.600 に答える