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 并记录到文件