<p>我读过你提到的realpython博客。我也会让你参考AWS教程。它是为部署bare bones Django项目而编写的,可以在以下位置找到:</p>
<p><a href="http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-django.html#python-django-configure-for-eb" rel="noreferrer">http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-django.html#python-django-configure-for-eb</a></p>
<p>我发现这是有用的工作,并学习了很多修复错误,你已经确定。当然,修复程序与我自己的教程实现相关,我一步一步地遵循这个教程。我已经读过其他的文章,谈到这个问题,但这里所说的解决办法并没有在这些文章中提供,据我所知。</p>
<p>下面是本教程的一个缩略版本,为这里的注释提供一些上下文。此缩写版本在创建/激活虚拟环境之后,但在其激活之前开始。</p>
<pre><code>$ mkdir ed_django_app
$ . venv/Scripts/activate
(venv)[~eb_django_app]$ django-admin startproject django_eb
(venv)[~eb_django_app/django_eb]$ python manage.py migrate
(venv)[~eb_django_app/django_eb]$ python manage.py runserver
(venv)[~eb_django_app]$ pip freeze > requirements.txt
(venv)[~eb_django_app]$ deactivate
[~eb_django_app]$ eb init –region us-east-1
</code></pre>
<p>在“eb init”命令之后,将在初始化过程中创建.elasticbeanstalk目录和一些文件。在该目录中可以找到config.yml文件。其内容包括:</p>
<pre><code>branch-defaults:
default:
environment: eb-django-dev
global:
application_name: eb_django_app
default_ec2_keyname: myec2keyname
default_platform: Python 2.7
default_region: us-east-1
profile: eb-cli
sc: null
</code></pre>
<p>本教程指导开发人员创建一个名为.ebextensions的目录,并创建01-eb戡django.config文件:</p>
<pre><code>option_settings:
"aws:elasticbeanstalk:application:environment":
DJANGO_SETTINGS_MODULE: "django_eb.settings"
PYTHONPATH: "/opt/python/current/app/django_eb:$PYTHONPATH"
"aws:elasticbeanstalk:container:python":
WSGIPath: "django_eb/django_eb/wsgi.py"
</code></pre>
<p>这是山药,压痕很重要。至少1个空格缩进。在这种情况下,每个级别有两个缩进空格。WSGIPath设置正确。务必确保目录结构与教程中所示的结构相同。</p>
<p>在本教程中,现在发出“eb create”命令,如您所述,将出现以下情况:</p>
<p>错误:WSGIPath引用的文件不存在</p>
<p>发现的问题存在于config.yml中,其中存在应用程序名称的密钥对:</p>
<pre><code>global:
application_name: eb_django_app
</code></pre>
<p>改为:</p>
<pre><code>global:
application_name: django_eb
</code></pre>
<p>这为我解决了错误。</p>