我有一个部署到AWS beantalk的Django应用程序。在遵循官方文档后,第一个版本就可以了:https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-django.html
然后,我使用django-filter添加了一项新功能到我的站点。现在,当我进行部署时,我在主要的前端页面上收到此错误:
内部服务器错误
服务器遇到内部错误或配置错误,无法完成您的请求。
请通过root @ localhost与服务器管理员联系,以告知他们该错误发生的时间以及您在该错误发生之前执行的操作。 服务器错误日志中可能会提供有关此错误的更多信息。
下面是我的错误日志。
[Thu Oct 01 04:47:09.118698 2020] [:error] [pid 21279] [remote 172.31.47.200:20528] apps.populate(settings.INSTALLED_APPS)
[Thu Oct 01 04:47:09.118704 2020] [:error] [pid 21279] [remote 172.31.47.200:20528] File "/opt/python/run/venv/local/lib/python3.6/site-packages/django/apps/registry.py", line 83, in populate
[Thu Oct 01 04:47:09.118707 2020] [:error] [pid 21279] [remote 172.31.47.200:20528] raise RuntimeError("populate() isn't reentrant")
[Thu Oct 01 04:47:09.118722 2020] [:error] [pid 21279] [remote 172.31.47.200:20528] RuntimeError: populate() isn't reentrant
[Thu Oct 01 04:47:13.477606 2020] [:error] [pid 21279] [remote 172.31.3.100:48] mod_wsgi (pid=21279): Target WSGI script '/opt/python/current/app/djangoproject/wsgi.py' cannot be loaded as Python module.
[Thu Oct 01 04:47:13.477658 2020] [:error] [pid 21279] [remote 172.31.3.100:48] mod_wsgi (pid=21279): Exception occurred processing WSGI script '/opt/python/current/app/djangoproject/wsgi.py'.
[Thu Oct 01 04:47:13.477768 2020] [:error] [pid 21279] [remote 172.31.3.100:48] Traceback (most recent call last):
[Thu Oct 01 04:47:13.477801 2020] [:error] [pid 21279] [remote 172.31.3.100:48] File "/opt/python/current/app/djangoproject/wsgi.py", line 16, in <module>
[Thu Oct 01 04:47:13.477806 2020] [:error] [pid 21279] [remote 172.31.3.100:48] application = get_wsgi_application()
[Thu Oct 01 04:47:13.477812 2020] [:error] [pid 21279] [remote 172.31.3.100:48] File "/opt/python/run/venv/local/lib/python3.6/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application
[Thu Oct 01 04:47:13.477816 2020] [:error] [pid 21279] [remote 172.31.3.100:48] django.setup(set_prefix=False)
[Thu Oct 01 04:47:13.477822 2020] [:error] [pid 21279] [remote 172.31.3.100:48] File "/opt/python/run/venv/local/lib/python3.6/site-packages/django/__init__.py", line 24, in setup
[Thu Oct 01 04:47:13.477825 2020] [:error] [pid 21279] [remote 172.31.3.100:48] apps.populate(settings.INSTALLED_APPS)
[Thu Oct 01 04:47:13.477831 2020] [:error] [pid 21279] [remote 172.31.3.100:48] File "/opt/python/run/venv/local/lib/python3.6/site-packages/django/apps/registry.py", line 83, in populate
[Thu Oct 01 04:47:13.477834 2020] [:error] [pid 21279] [remote 172.31.3.100:48] raise RuntimeError("populate() isn't reentrant")
[Thu Oct 01 04:47:13.477849 2020] [:error] [pid 21279] [remote 172.31.3.100:48] RuntimeError: populate() isn't reentrant
[Thu Oct 01 04:47:17.516356 2020] [:error] [pid 21279] [remote 172.31.29.143:48] mod_wsgi (pid=21279): Target WSGI script '/opt/python/current/app/djangoproject/wsgi.py' cannot be loaded as Python module.
[Thu Oct 01 04:47:17.516412 2020] [:error] [pid 21279] [remote 172.31.29.143:48] mod_wsgi (pid=21279): Exception occurred processing WSGI script '/opt/python/current/app/djangoproject/wsgi.py'.
[Thu Oct 01 04:47:17.516522 2020] [:error] [pid 21279] [remote 172.31.29.143:48] Traceback (most recent call last):
[Thu Oct 01 04:47:17.516557 2020] [:error] [pid 21279] [remote 172.31.29.143:48] File "/opt/python/current/app/djangoproject/wsgi.py", line 16, in <module>
[Thu Oct 01 04:47:17.516562 2020] [:error] [pid 21279] [remote 172.31.29.143:48] application = get_wsgi_application()
[Thu Oct 01 04:47:17.516568 2020] [:error] [pid 21279] [remote 172.31.29.143:48] File "/opt/python/run/venv/local/lib/python3.6/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application
[Thu Oct 01 04:47:17.516572 2020] [:error] [pid 21279] [remote 172.31.29.143:48] django.setup(set_prefix=False)
[Thu Oct 01 04:47:17.516577 2020] [:error] [pid 21279] [remote 172.31.29.143:48] File "/opt/python/run/venv/local/lib/python3.6/site-packages/django/__init__.py", line 24, in setup
[Thu Oct 01 04:47:17.516589 2020] [:error] [pid 21279] [remote 172.31.29.143:48] apps.populate(settings.INSTALLED_APPS)
[Thu Oct 01 04:47:17.516596 2020] [:error] [pid 21279] [remote 172.31.29.143:48] File "/opt/python/run/venv/local/lib/python3.6/site-packages/django/apps/registry.py", line 83, in populate
[Thu Oct 01 04:47:17.516599 2020] [:error] [pid 21279] [remote 172.31.29.143:48] raise RuntimeError("populate() isn't reentrant")
[Thu Oct 01 04:47:17.516615 2020] [:error] [pid 21279] [remote 172.31.29.143:48] RuntimeError: populate() isn't reentrant
[Thu Oct 01 04:47:18.842837 2020] [:error] [pid 21279] [remote 172.31.58.190:44] mod_wsgi (pid=21279): Target WSGI script '/opt/python/current/app/djangoproject/wsgi.py' cannot be loaded as Python module.
[Thu Oct 01 04:47:18.842888 2020] [:error] [pid 21279] [remote 172.31.58.190:44] mod_wsgi (pid=21279): Exception occurred processing WSGI script '/opt/python/current/app/djangoproject/wsgi.py'.
[Thu Oct 01 04:47:18.843064 2020] [:error] [pid 21279] [remote 172.31.58.190:44] Traceback (most recent call last):
[Thu Oct 01 04:47:18.843099 2020] [:error] [pid 21279] [remote 172.31.58.190:44] File "/opt/python/current/app/djangoproject/wsgi.py", line 16, in <module>
[Thu Oct 01 04:47:18.843103 2020] [:error] [pid 21279] [remote 172.31.58.190:44] application = get_wsgi_application()
[Thu Oct 01 04:47:18.843110 2020] [:error] [pid 21279] [remote 172.31.58.190:44] File "/opt/python/run/venv/local/lib/python3.6/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application
[Thu Oct 01 04:47:18.843113 2020] [:error] [pid 21279] [remote 172.31.58.190:44] django.setup(set_prefix=False)
[Thu Oct 01 04:47:18.843119 2020] [:error] [pid 21279] [remote 172.31.58.190:44] File "/opt/python/run/venv/local/lib/python3.6/site-packages/django/__init__.py", line 24, in setup
[Thu Oct 01 04:47:18.843123 2020] [:error] [pid 21279] [remote 172.31.58.190:44] apps.populate(settings.INSTALLED_APPS)
[Thu Oct 01 04:47:18.843129 2020] [:error] [pid 21279] [remote 172.31.58.190:44] File "/opt/python/run/venv/local/lib/python3.6/site-packages/django/apps/registry.py", line 83, in populate
[Thu Oct 01 04:47:18.843132 2020] [:error] [pid 21279] [remote 172.31.58.190:44] raise RuntimeError("populate() isn't reentrant")
[Thu Oct 01 04:47:18.843147 2020] [:error] [pid 21279] [remote 172.31.58.190:44] RuntimeError: populate() isn't reentrant ```
这些是我的要求。txt:
asgiref==3.2.10
Django==3.1.1
django-ckeditor==6.0.0
django-filter==2.3.0
django-js-asset==1.2.2
PyJWT==1.7.1
pytz==2020.1
sqlparse==0.3.1
WSGI文件:
option_settings:
aws:elasticbeanstalk:container:python:
WSGIPath: djangoproject/wsgi.py
请您帮忙。已经尝试了一段时间了。
非常感谢你, Cj
答案 0 :(得分:0)
在您的.ebextensions
django配置文件中执行此操作:
command: "source /var/app/venv/staging-LQM1lest/bin/activate && pip install -r requirements/production.txt"
因此,基本上激活venv并运行pip install可以确保将依赖项安装在正确的venv中。另外:
aws:elasticbeanstalk:container:python:
WSGIPath: config.wsgi:application
对于我来说,我在wsgi.py
文件所在的根目录中有一个配置文件夹