Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django;AWS Elastic Beanstalk错误:WSGIPath引用的文件不存在_Python_Django_Amazon Web Services_Amazon Ec2_Amazon Elastic Beanstalk - Fatal编程技术网

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(平台)中的EC2(服务器)实例运行Apache
  • Apache根据我们的WSGIPATH查找Python应用程序
  • 默认情况下,EB假定WSGI文件名为application.py
  • 有两种方法可以纠正这一点

    选项1:使用特定于环境的配置设置

    运行:
    $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文件?