2015-04-01 43 views
9

我一直在努力讓Django和AWS一起工作。我在這裏以下教程:將Django部署到AWS - WSGIPath引用了一個不存在的文件

https://realpython.com/blog/python/deploying-a-django-app-to-aws-elastic-beanstalk/

我已經遵守了所有的教程步驟,包括使用「EB選項」命令來更改WSGIPath,但我不斷收到錯誤:

」錯誤:您的WSGIPath引用了一個不存在的文件。「

據我所知,我一直在根據教程做所有事情。

我的配置文件的相關部分看起來是這樣的:

NumProcesses: '1' 
NumThreads: '15' 
StaticFiles: /static/=static/ 
WSGIPath: iotd/iotd/wsgi.py 

我在做什麼錯?

回答

5

我已閱讀您提到的realpython博客文章。我也會把你介紹給AWS教程。它是一個裸露的骨頭Django項目的部署書面和它可以在這裏找到:

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-django.html#python-django-configure-for-eb

我認爲有必要通過工作,並學到了很多解決您已經確定了錯誤。當然這個修復與我自己的教程實現有關,後面我一步步地進行了學習。我已閱讀了其他與此問題有關的帖子,但據我所知,這裏所述的解決方案並未在這些帖子中提供。

本教程的縮寫版本將爲此處提供的評論提供一些背景信息。這個縮寫版本在創建/激活虛擬環境之後開始,但在其激活之前。

$ 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 

的「EB初始化」命令.elasticbeanstalk目錄後,一些文件一起,在初始化過程中創建的。在那個目錄下你會找到config.yml文件。其內容是:

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 

的教程指導開發人員,然後創建一個目錄名爲.ebextensions並創建01-eb_django.config文件:

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" 

這是YAML和壓痕事項。至少1個空格縮進。在這種情況下,每個級別都有2個縮進空格。 WSGIPath設置正確。確保目錄結構與教程中指出的內容相同非常重要。

本教程中的「EB創建」命令現在發行的,正如你指出,下面就出現了:

錯誤:WSGIPath是指不存在

所識別出的問題文件存在於配置中。陽明那裏是密鑰對的應用程序名稱:

global: 
    application_name: eb_django_app 

它改爲:

global: 
    application_name: django_eb 

這解決了錯誤我。

+0

我們遇到了未安裝psycopg2的問題。添加這些文件到我們的.ebextensions/01-app.config: 包: yum: postgresql93-devel:[] – 2015-08-08 11:49:50

+1

我做了本教程,並堅持忘記git提交更改爲「.ebextensions/01-app。配置「。 git commit和「eb deploy」之後,一切都按預期工作。 – pac 2017-03-14 03:23:14