Django项目重组:无法导入应用程序

bre*_*azy 3 python django

我正在尝试重组我的项目,以符合最新的《Two Scoops of Django》一书(针对 Django 1.11)中的建议。

\n\n

完成重组后,我的应用程序无法导入。

\n\n
secureDash_project\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 README.rst\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 config\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __pycache__\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 db.sqlite3\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 settings\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __pycache__\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 settings.py\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 urls.py\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 wsgi.py\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 db.sqlite3\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 manage.py\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 requirements.txt\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 secureDash\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __pycache__\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 dash\n        \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n        \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __pycache__\n        \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 admin.py\n        \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 apps.py\n        \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 forms.py\n        \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 migrations\n        \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 __init__.py\n        \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 models.py\n        \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 tests.py\n        \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 urls.py\n        \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 views.py\n        \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 templates\n            \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 dash\n
Run Code Online (Sandbox Code Playgroud)\n\n

设置.py摘录:

\n\n
...\nimport os\n\n# Build paths inside the project like this: os.path.join(BASE_DIR, ...)\nBASE_DIR = os.path.dirname(os.path.dirname(\n    os.path.dirname(os.path.abspath(__file__))))\nENV_PATH = os.path.abspath(os.path.dirname(__file__))\n\n# SECURITY WARNING: don\'t run with debug turned on in production!\nDEBUG = True\n\n# Application definition\n\nINSTALLED_APPS = [\n    \'secureDash.dash.apps.DashConfig\',\n    \'django.contrib.admin\',\n    \'django.contrib.auth\',\n    \'django.contrib.contenttypes\',\n    \'django.contrib.sessions\',\n    \'django.contrib.messages\',\n    \'django.contrib.staticfiles\',\n    # \'django_static_jquery\',\n    # \'bootstrap3\',\n] ...\n
Run Code Online (Sandbox Code Playgroud)\n\n

跑步时

\n\n
python3 manage.py runserver --settings=config.settings.settings\n
Run Code Online (Sandbox Code Playgroud)\n\n

我得到:

\n\n
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x1076b0d08>\nTraceback (most recent call last):\n  File "/usr/local/lib/python3.5/site-packages/django/utils/autoreload.py", line 226, in wrapper\n    fn(*args, **kwargs)\n  File "/usr/local/lib/python3.5/site-packages/django/core/management/commands/runserver.py", line 113, in inner_run\n    autoreload.raise_last_exception()\n  File "/usr/local/lib/python3.5/site-packages/django/utils/autoreload.py", line 249, in raise_last_exception\n    six.reraise(*_exception)\n  File "/usr/local/lib/python3.5/site-packages/django/utils/six.py", line 685, in reraise\n    raise value.with_traceback(tb)\n  File "/usr/local/lib/python3.5/site-packages/django/utils/autoreload.py", line 226, in wrapper\n    fn(*args, **kwargs)\n  File "/usr/local/lib/python3.5/site-packages/django/__init__.py", line 27, in setup\n    apps.populate(settings.INSTALLED_APPS)\n  File "/usr/local/lib/python3.5/site-packages/django/apps/registry.py", line 85, in populate\n    app_config = AppConfig.create(entry)\n  File "/usr/local/lib/python3.5/site-packages/django/apps/config.py", line 142, in create\n    app_module = import_module(app_name)\n  File "/usr/local/Cellar/python3/3.5.2_3/Frameworks/Python.framework/Versions/3.5/lib/python3.5/importlib/__init__.py", line 126, in import_module\n    return _bootstrap._gcd_import(name[level:], package, level)\n  File "<frozen importlib._bootstrap>", line 986, in _gcd_import\n  File "<frozen importlib._bootstrap>", line 969, in _find_and_load\n  File "<frozen importlib._bootstrap>", line 956, in _find_and_load_unlocked\nImportError: No module named \'dash\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

secureDash.dash.apps.DashConfig:

\n\n
from django.apps import AppConfig\n\n\nclass DashConfig(AppConfig):\n    name = \'dash\'\n
Run Code Online (Sandbox Code Playgroud)\n

小智 6

替换secureDash.dash.apps.DashConfigsecureDash.dashinINSTALLED_APPS应该可以修复它。