2017-07-06 46 views
0

我是Django中的新编程。我做了一个本地演示,它运行没有问题,但下一步是在AWS Elastic beanstalk上部署Django应用程序,我正在尝试。AWS和Django:“无法导入Django”

我有这样的环境: 〜/ Python_Env/MiEntorno

这个项目: 〜/ ProyectosDjango /希奥

我目前的Django项目结构是这样的:

requirements.txt 
.ebextensions 
    |-01-django_env.config 
.elasticbeanstalk 
    |-config.yml 
.gitignore 
custom_storage.py 
manage.py 
Refugio 
    |__init__.py 
    |-settings 
    |-urls.py 
    |-wsgi.py 
|-apps 
|-templates 
|-static 

我有这个错误,当我执行此命令:(Mi Entorno)/ ProyectosDjango/Refugio> manage.py collectstaticmanage.py runserver

“无法导入Django。你确定它已经安装在 你的PYTHONPATH环境变量上吗? ?你忘了激活 虚拟环境”

我把这个在我的-01-django_env.config:

option_settings: 
    "aws:elasticbeanstalk:application:environment": 
    DJANGO_SETTINGS_MODULE: "Refugio.settings" 
    PYTHONPATH: "/opt/python/current/app/Refugio:$PYTHONPATH" 
    "aws:elasticbeanstalk:container:python" 
    WSGIPath: "Refugio/Refugio/wsgi.py" 

,并设置我编辑的数据库,并补充一点:

STATICFILES_LOCATION = 'static' 
MEDIAFILES_LOCATION = 'media' 

AWS_STORAGE_BUCKET_NAME = 's3.refugioprueba.com' 
AWS_ACCESS_KEY_ID = 'xxx' 
AWS_SECRET_ACCESS_KEY = 'yy/xxx/' 

STATICFILES_STORAGE = 'custom_storages.StaticStorage' 
DEFAULT_FILE_STORAGE = 'custom_storages.MediaStorage' 
AWS_S3_CUSTOM_DOMAIN = '%s.s3-us-west-1.amazonaws.com' % AWS_STORAGE_BUCKET_NAME 
AWS_S3_SECURE_URLS = False 

from boto.s3.connection import ProtocolIndependentOrdinaryCallingFormat 
AWS_S3_CALLING_FORMAT = ProtocolIndependentOrdinaryCallingFormat 
from boto.s3.connection import S3Connection 
S3Connection.DefaultHost = 's3.us.west-1.amazonaws.com' 

STATIC_URL = "http://%s/%s/" % (AWS_S3_CUSTOM_DOMAIN, STATICFILES_LOCATION) 
MEDIA_URL = "http://%s/%s/" % (AWS_S3_CUSTOM_DOMAIN, MEDIAFILES_LOCATION) 


WSGI_APPLICATION = 'Refugio.wsgi.application' 

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': 'ebdb', 
     'USER': 'root', 
     'PASSWORD': 'XXX', 
     'HOST': 'XXXrds.amazonaws.com', 
     'PORT': 3306, 
    } 
} 

回答

0

你确定它的安装环境?如pip install django(或者你正在使用哪个具体版本)?或可替代pip install -r requirements.txt,如果它在你的requirements.txt档案? EBS通常会自动安装requirements.txt依赖关系,因此将它放在那里是最安全的