AWS Elastic Beanstalk 上的 Django manage.py

Posted

技术标签:

【中文标题】AWS Elastic Beanstalk 上的 Django manage.py【英文标题】:Django on AWS Elastic Beanstalk manage.py 【发布时间】:2014-08-03 00:37:22 【问题描述】:

我按照以下文档在 AWS Elastic Beanstalk 上安装了 django。 http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_Python_django.html

现在我开始编写我的第一个 djangoapp,著名的民意调查。问题是当我使用命令 python manage.py startapp polls 时,我得到一个错误 Unknown Command : startapp.当我使用 python manage.py syncdb 时,出现错误 Unknown Command : syncdb.

当我使用 python manage.py 时,我得到以下信息

Usage: manage.py subcommand [options] [args]

Options:
  -v VERBOSITY, --verbosity=VERBOSITY
                        Verbosity level; 0=minimal output, 1=normal output,
                        2=verbose output, 3=very verbose output
  --settings=SETTINGS   The Python path to a settings module, e.g.
                        "myproject.settings.main". If this isn't provided, the
                        DJANGO_SETTINGS_MODULE environment variable will be
                        used.
  --pythonpath=PYTHONPATH
                        A directory to add to the Python path, e.g.
                        "/home/djangoprojects/myproject".
  --traceback           Print traceback on exception
  --version             show program's version number and exit
  -h, --help            show this help message and exit
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/tmp/djangodev/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line
    utility.execute()
  File "/tmp/djangodev/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 366, in execute
    sys.stdout.write(self.main_help_text() + '\n')
  File "/tmp/djangodev/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 231, in main_help_text
    for name, app in get_commands().iteritems():
  File "/tmp/djangodev/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 101, in get_commands
    apps = settings.INSTALLED_APPS
  File "/tmp/djangodev/local/lib/python2.7/site-packages/django/utils/functional.py", line 184, in inner
    self._setup()
  File "/tmp/djangodev/local/lib/python2.7/site-packages/django/conf/__init__.py", line 42, in _setup
    self._wrapped = Settings(settings_module)
  File "/tmp/djangodev/local/lib/python2.7/site-packages/django/conf/__init__.py", line 93, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/tmp/djangodev/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/mysite/mysite/settings.py", line 15, in <module>
    'NAME': os.environ['RDS_DB_NAME'],                      # Or path to database file if using sqlite3.
  File "/tmp/djangodev/lib/python2.7/UserDict.py", line 23, in __getitem__
    raise KeyError(key)
KeyError: 'RDS_DB_NAME'

如何度过这个难关??

谢谢

【问题讨论】:

【参考方案1】:

看起来你有一个使用环境变量的设置:

如果您使用 os.environ['RDS_DB_NAME'] 作为数据库,请在数据库部分检查您的 settings.py。 检查您是否在您的~/.profile~/.bashrc~/.bash_profile 中配置了环境变量RDS_DB_NAME,或者在使用manage.py 后尝试使用导出命令export RDS_DB_NAME=my_dabatase_name

【讨论】:

文档说..所有参数都可以通过 ENV 变量获得。编辑 /root/mysite/settings.py 以使用 Amazon RDS,当您启动 Python 容器时,您可以关联 Amazon RDS 数据库实例。 Amazon RDS 参数的值可通过环境变量获得。数据库 = 'default': 'ENGINE': 'django.db.backends.mysql', 'NAME': os.environ['RDS_DB_NAME'], 'USER': os.environ['RDS_USERNAME'], 'PASSWORD ': os.environ['RDS_PASSWORD'], 'HOST': os.environ['RDS_HOSTNAME'], 'PORT': os.environ['RDS_PORT'], 在这种情况下,您应该创建自己的本地设置,仅用于开发目的,这个答案可以工作***.com/questions/20078666/…

以上是关于AWS Elastic Beanstalk 上的 Django manage.py的主要内容,如果未能解决你的问题,请参考以下文章

如何避免 AWS Elastic Beanstalk 上的 TooManyApplicationVersion 异常?

反应:AWS Elastic Beanstalk 上的 502 错误网关

AWS Elastic Beanstalk 上的 Wordpress

AWS Elastic Beanstalk 上的 Spring Boot 并记录到文件

AWS Elastic Beanstalk 上的 Django manage.py

如何获取命令以从 Elastic Beanstalk 上的 Dockerfile.aws.json 运行?