Python Django;AWS Elastic Beanstalk错误:WSGIPath引用的文件不存在
我正在使用本教程: 我在根目录中创建Python Django;AWS Elastic Beanstalk错误:WSGIPath引用的文件不存在,python,django,amazon-web-services,amazon-ec2,amazon-elastic-beanstalk,Python,Django,Amazon Web Services,Amazon Ec2,Amazon Elastic Beanstalk,我正在使用本教程: 我在根目录中创建.ebextensions目录,并将此django.config文件放入其中: option_settings: aws:elasticbeanstalk:container:python: WSGIPath: mysite/wsgi.py 我还尝试将路径设置为mysite/mysite/wsgi.py,因为我在某个地方看到了这一点,但它对我没有帮助 我看的每一处都显示了一个不同的.config文件,有不同的安排,我不知道从这里可以走到哪里。如
.ebextensions
目录,并将此django.config
文件放入其中:
option_settings:
aws:elasticbeanstalk:container:python:
WSGIPath: mysite/wsgi.py
我还尝试将路径设置为mysite/mysite/wsgi.py
,因为我在某个地方看到了这一点,但它对我没有帮助
我看的每一处都显示了一个不同的
.config
文件,有不同的安排,我不知道从这里可以走到哪里。如何在Elastic Beanstalk中正确设置WSGIPath?[解决方案]
1 eb配置
2将那里的WSGIPath从application.py更改为mysite/wsgi.py
就是这样我遇到了一个类似的问题,当我将.elasticbeanstalk与.ebextensions放在同一目录中,而不是将其作为子目录时,问题似乎得到了解决。然后我不得不运行
eb config
来修复它实际上正在接收的wsgi文件,现在我有了一个正在运行的应用程序 确保不忽略.ebextensions。EB查找.ignore文件(.ebignore默认情况下不存在,但.gitignore存在,则会使用它)并仅部署未被忽略的文件。我的本地设置也有类似问题
如果您看到以下错误:
错误:WSGIPath引用的文件不存在。
注意以下几点:
$eb config
查找以下配置文件“.elasticbeanstalk/src test.env.yml”
该文件实际上不存在于本地;EB拉取它以便您可以编辑它。
如果将更改保存在此伪文件中,EB将更新环境中的相应设置
如果在文件中搜索术语“WSGI”,则应找到类似以下内容的配置部分:
aws:elasticbeanstalk:container:python:
NumProcesses: '1'
NumThreads: '15'
StaticFiles: /static/=static/
WSGIPath: application.py
更新WSGIPath:
aws:elasticbeanstalk:container:python:
NumProcesses: '1'
NumThreads: '15'
StaticFiles: /static/=static/
WSGIPath: src/src/wsgi.py #src/src is an example. Do not just c&p.
如果保存文件,EB将自动更新环境配置
使用$eb config
方法更改设置的优点是,您可以为每个环境指定不同的设置
选项2:使用全局配置设置
要使用此选项,请创建名为/.ebextensions/02_python.config的新文件:
option_settings:
"aws:elasticbeanstalk:application:environment":
DJANGO_SETTINGS_MODULE: “src.settings" #src is an example.
"PYTHONPATH": "/opt/python/current/app/src:$PYTHONPATH" #src is an example.
"aws:elasticbeanstalk:container:python":
WSGIPath: src/src/wsgi.py #src is an example.
NumProcesses: 3
NumThreads: 20
"aws:elasticbeanstalk:container:python:staticfiles":
"/static/": "www/static/"
发生了什么事
- DJANGO_设置模块:“src.SETTINGS”-将路径添加到设置模块
- “PYTHONPATH”:“/opt/python/current/app/src:$PYTHONPATH”-更新我们的PYTHONPATH,以便python可以在我们的应用程序中找到模块。(请注意,使用完整路径是必要的。)
- WSGIPath:src/src/wsgi.py设置我们的wsgi路径
- NumProcesses:3和NumThreads:20-更新用于运行WSGI应用程序的进程和线程的数量
- “/static/”:“www/static/”设置静态文件路径
运行
$git commit
(如果需要)和$eb deploy
来更新这些设置。我没有使用控制台,而是使用GUI
ERROR: Your WSGIPath refers to a file that does not exist.
哪里可能有问题:创建.zip文件
选择所有:项目的文件(不是项目文件夹)
注意:weworkout是我的django项目(由django admin startproject创建)
WEB(训练)
正确方法:选择所有文件
错误方式:选择项目文件夹
此外,这是在上传之前对django项目所做的唯一更改 weworkout/.ebextensions/django.config文件包含
option_settings:
aws:elasticbeanstalk:container:python:
WSGIPath: weworkout/wsgi.py
注意:.ebextensions与manage.py位于同一文件夹中。请检查您的Django.config文件是否以正确的扩展名保存。我也有同样的问题,问题是该文件被保存为TXT文件而不是配置文件。您有这个文件吗。elasticbeanstalk/optionsettings?django.config没有做任何事情吗?三年后,这仍然在帮助人们。在AWS教程中,这个问题确实需要解决!答案中的eb配置是否引用了django.config文件?