4

関連するディレクトリ構造は次のとおりです(Windows 7、Python 2.7、virtualenv)

-userProf
-   -   manage.py
    -   -UserProfile
            -   sampleapp_db
            -   urls.py
            -   views.py
            -   wsgi.py
            -   __init__.py
            -   
            -libs
            -   -   __init__.py
            -   -allauth
            -       -   app_settings.py
            -       -   models.py
            -       -   tests.py
            -       -   urls.py
            -       -   utils.py
            -       -   __init__.py
            -       -   
            -       -account
            -       -   -   admin.py
            -       -   -   context_processors.py
            -       -   -   models.py
            -       -   -   urls.py
            -       -   -   __init__.py
            -       -socialaccount
            -       -   -   admin.py
            -       -   -   context_processors.py
            -       -   -   models.py
            -       -   -   urls.py
            -       -   -   views.py
            -       -   -   __init__.py
            -       -   -   
            -       -templates
            -           -account
            -           -   -   base.html
            -           -   -   email.html
            -settings
            -       base_settings.py
            -       dev.py
            -       __init__.py
            -       
            -static
                -css

この django アプリを実行しようとすると、次のエラーが発生します エラー:アカウントという名前のモジュールはありません

syspath が問題である、または appname がプロジェクト名と一致することを参照している SO に関する他の投稿を読みました。

Django Shell 設定という名前のモジュールはありません

...この結果、base_settings.py ファイルに次のステートメントを追加しました。

import sys
base = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
base_parent = os.path.dirname(base)
sys.path.append(base)
sys.path.append(base_parent)
sys.path.append(os.path.join(base,'libs'))
sys.path.append(os.path.join(base,'libs','allauth','account'))

PyCharmにブレークを入れてsys.pathを評価することで、sys.pathが正しいことを確認しました

これをmanage.pyに入れるべきですか?

モジュールをインポートできないと言及している他の SO 投稿もありますが、Python コンソールを起動して、例外がスローされることなく UserProfile.libs.allauth.account をインポートできます。

私のbase_settings.pyには、次の関連セクションがあります

INSTALLED_APPS = (
    'UserProfile.libs.allauth.account',
)
4

1 に答える 1

6

libs/allauth dir にファイルがないようです。

__init__.py

コメントに基づく最終的な解決策は、manage.py ファイルの sys.path ファイルを更新することでした。

manage.py ファイルに変更が加えられるまで、settings.py ファイルにアクセスできなかったため、settings.py に変更を加えても表示されませんでした。

于 2012-09-05T15:35:49.843 に答える