我无法加载Django网站。这些是我从日志中得到的错误消息:
get_wsgi_application
[Mon Jan 07 23:38:51.699497 2019] [:error] [pid 6456] [remote 74.71.99.135:244] django.setup(set_prefix=False)
[Mon Jan 07 23:38:51.699503 2019] [:error] [pid 6456] [remote 74.71.99.135:244] File "/opt/python/run/venv/local/lib/python3.6/site-packages/django/__init__.py", line 22, in setup
[Mon Jan 07 23:38:51.699507 2019] [:error] [pid 6456] [remote 74.71.99.135:244] configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
[Mon Jan 07 23:38:51.699512 2019] [:error] [pid 6456] [remote 74.71.99.135:244] File "/opt/python/run/venv/local/lib/python3.6/site-packages/django/conf/__init__.py", line 56, in __getattr__
[Mon Jan 07 23:38:51.699515 2019] [:error] [pid 6456] [remote 74.71.99.135:244] self._setup(name)
[Mon Jan 07 23:38:51.699520 2019] [:error] [pid 6456] [remote 74.71.99.135:244] File "/opt/python/run/venv/local/lib/python3.6/site-packages/django/conf/__init__.py", line 41, in _setup
[Mon Jan 07 23:38:51.699523 2019] [:error] [pid 6456] [remote 74.71.99.135:244] self._wrapped = Settings(settings_module)
[Mon Jan 07 23:38:51.699528 2019] [:error] [pid 6456] [remote 74.71.99.135:244] File "/opt/python/run/venv/local/lib/python3.6/site-packages/django/conf/__init__.py", line 110, in __init__
[Mon Jan 07 23:38:51.699530 2019] [:error] [pid 6456] [remote 74.71.99.135:244] mod = importlib.import_module(self.SETTINGS_MODULE)
[Mon Jan 07 23:38:51.699535 2019] [:error] [pid 6456] [remote 74.71.99.135:244] File "/opt/python/run/venv/lib64/python3.6/importlib/__init__.py", line 126, in import_module
[Mon Jan 07 23:38:51.699538 2019] [:error] [pid 6456] [remote 74.71.99.135:244] return _bootstrap._gcd_import(name[level:], package, level)
[Mon Jan 07 23:38:51.699543 2019] [:error] [pid 6456] [remote 74.71.99.135:244] File "<frozen importlib._bootstrap>", line 994, in _gcd_import
[Mon Jan 07 23:38:51.699548 2019] [:error] [pid 6456] [remote 74.71.99.135:244] File "<frozen importlib._bootstrap>", line 971, in _find_and_load
[Mon Jan 07 23:38:51.699553 2019] [:error] [pid 6456] [remote 74.71.99.135:244] File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
[Mon Jan 07 23:38:51.699567 2019] [:error] [pid 6456] [remote 74.71.99.135:244] ModuleNotFoundError: No module named 'ecs_site.settings'
这是顶级目录(ecs_site)的目录结构:
total 272
-rw-r--r-- 1 chauncey staff 97B Jan 6 21:02 requirements.txt
drwxr-xr-x 14 chauncey staff 476B Jan 4 18:11 pages
-rwxr-xr-x 1 chauncey staff 806B Mar 22 2018 manage.py
drwxr-xr-x 10 chauncey staff 340B Jan 4 18:05 ecs_site
-rw-r--r-- 1 chauncey staff 128K Mar 22 2018 db.sqlite3
这是/ecs_site/ecs_site
目录的目录结构:
total 24
-rw-r--r-- 1 chauncey staff 394B Jan 7 18:07 wsgi.py
-rw-r--r-- 1 chauncey staff 812B Mar 22 2018 urls.py
drwxr-xr-x 3 chauncey staff 102B Mar 23 2018 templates
drwxr-xr-x 2 chauncey staff 68B Mar 23 2018 static
-rw-r--r-- 1 chauncey staff 3.6K Jan 6 21:09 settings.py
drwxr-xr-x 6 chauncey staff 204B Jan 1 20:43 __pycache__
-rw-r--r-- 1 chauncey staff 0B Mar 22 2018 __init__.py
这是./ecs_site/pages
目录的目录结构:
total 56
-rw-r--r-- 1 chauncey staff 7.1K Jan 4 19:53 views.py
-rw-r--r-- 1 chauncey staff 153B Jan 4 18:45 urls.py
-rw-r--r-- 1 chauncey staff 60B Mar 22 2018 tests.py
drwxr-xr-x 5 chauncey staff 170B Apr 14 2018 templatetags
drwxr-xr-x 4 chauncey staff 136B Apr 3 2018 templates
-rw-r--r-- 1 chauncey staff 57B Mar 22 2018 models.py
drwxr-xr-x 4 chauncey staff 136B Mar 22 2018 migrations
-rw-r--r-- 1 chauncey staff 85B Mar 22 2018 apps.py
-rw-r--r-- 1 chauncey staff 63B Mar 22 2018 admin.py
drwxr-xr-x 8 chauncey staff 272B Jan 4 19:53 __pycache__
-rw-r--r-- 1 chauncey staff 0B Mar 22 2018 __init__.py
这是/.ebextensions/django.config
文件:
option_settings:
"aws:elasticbeanstalk:application:environment":
DJANGO_SETTING_MODULE: "ecs_site.settings"
PYTHON_PATH: "/opt/python/current/ecs_site/ecs_site:$PYTHONPATH"
"aws:elasticbeanstalk:container:python":
WSGIPath: "ecs_site/ecs_site/wsgi.py"
这是我的wsgi.py
文件(仅供参考):
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ecs_site.settings")
application = get_wsgi_application()
这是manage.py:
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ecs_site.settings")
try:
from django.core.management import execute_from_command_line
except ImportError:
# The above import may fail for some other reason. Ensure that the
# issue is really that Django is missing to avoid masking other
# exceptions on Python 2.
try:
import django
except ImportError:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
)
raise
execute_from_command_line(sys.argv)
任何帮助将不胜感激。
答案 0 :(得分:1)
您的PYTHONPATH
文件中的django.config
设置似乎太深了。第二级ecs_site
目录是一个包,因此PYTHONPATH
应该指向上面的目录,以便可以解析ecs_site.settings
模块:
PYTHONPATH: "/opt/python/current/ecs_site:$PYTHONPATH"
还要确保变量名为PYTHONPATH
,而不是PYTHON_PATH
。