将 Django 应用程序部署到 AWS 时出现“ValueError:要解压的值太多”
Posted
技术标签:
【中文标题】将 Django 应用程序部署到 AWS 时出现“ValueError:要解压的值太多”【英文标题】:"ValueError: too many values to unpack" while deploying Django app to AWS 【发布时间】:2015-01-23 11:15:20 【问题描述】:我正在尝试使用以下文档将我的 Django 应用程序部署到 AWS:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_Python_django.html
一切都很好,直到最后一步:git aws.push
它返回以下错误:
DCs-MacBook-Pro:ssite deeptichopra$ git aws.push
Traceback (most recent call last):
File ".git/AWSDevTools/aws.elasticbeanstalk.push", line 41, in <module>
dev_tools = DevTools()
File "/Users/deeptichopra/Desktop/ssite/.git/AWSDevTools/aws/dev_tools.py", line 36, in __init__
self.beanstalk_config = ElasticBeanstalkConfig(os.getcwd())
File "/Users/deeptichopra/Desktop/ssite/.git/AWSDevTools/aws/elastic_beanstalk_config.py", line 70, in __init__
self.set_credential_settings()
File "/Users/deeptichopra/Desktop/ssite/.git/AWSDevTools/aws/elastic_beanstalk_config.py", line 108, in set_credential_settings
self.credential_settings = self.credential_file["global"]
File "/Users/deeptichopra/Desktop/ssite/.git/AWSDevTools/aws/ini.py", line 59, in __getitem__
return section.to_h()
File "/Users/deeptichopra/Desktop/ssite/.git/AWSDevTools/aws/ini.py", line 39, in to_h
(key, value) = line.split("=")
ValueError: too many values to unpack
mysite/.ebextensions 中的 mysite.config 文件:
container_commands:
01_syncdb:
command: “manage.py syncdb --noinput"
leader_only: true
option_settings:
- namespace: aws:elasticbeanstalk:container:python
option_name: WSGIPath
value: ssite/wsgi.py
- option_name: DJANGO_SETTINGS_MODULE
value: ssite.settings
.elasticbeanstalk 文件夹中的配置文件:
[global]
ApplicationName=ssite
AwsCredentialFile=/Users/deeptichopra/.elasticbeanstalk/aws_credential_file
DevToolsEndpoint=git.elasticbeanstalk.ap-southeast-1.amazonaws.com
EnvironmentName=ssite-env
EnvironmentTier=WebServer::Standard::1.0
EnvironmentType=SingleInstance
InstanceProfileName=aws-elasticbeanstalk-ec2-role
OptionSettingFile=/Users/deeptichopra/Desktop/ssite/.elasticbeanstalk/optionsettings.ssite-env
RdsDeletionPolicy=Snapshot
RdsEnabled=Yes
RdsSourceSnapshotName=
Region=ap-southeast-1
ServiceEndpoint=https://elasticbeanstalk.ap-southeast-1.amazonaws.com
SolutionStack=64bit Amazon Linux 2014.09 v1.0.9 running Python 2.7
应用程序在本地服务器上运行良好。有什么问题?
【问题讨论】:
回溯告诉您该行中有多个=
。尝试打印 line 以查看其内容。
但它指向的行来自 aws 代码。我没有在那里编辑任何东西,只是下载了它。
【参考方案1】:
检查您的~/.elasticbeanstalk/aws_credential_file
文件。请勿在此处发布内容。
是否有任何值/密码包含=
?那是你的问题。
亚马逊提供的 python 脚本将=
上的行拆分,但它们没有告诉您不能在密码中使用=
的任何地方。
【讨论】:
谢谢!我不可能猜到!【参考方案2】:您的 Elastic Beanstalk 配置文件似乎有问题。您可以发布文件 .elasticbeanstalk/config 的内容吗?
.elasticbeanstalk 隐藏目录应该存在于您的 git 工作副本的根目录中。
【讨论】:
我认为最好将其作为评论发布。因为这不是答案 我认为问题出在配置文件上,恕我直言,虽然是部分问题。为了增强我的答案,我要求开场白发布文件,以便我可以扩展并完成我的答案。 您的意思是 mysite/.ebextensions 中的 mysite.config 文件?我在问题中添加了这一点。 您的 mysite 文件夹中应该有一个名为 .elasticbeanstalk 的目录,不是吗? 文件看起来没问题,您可以尝试调试在 /Users/deeptichopra/Desktop/ssite/.git/AWSDevTools/aws/ini.py 文件的第 39 行添加行print line
的代码.您应该看到打印的配置行,以及在错误之前打印的有问题的行。以上是关于将 Django 应用程序部署到 AWS 时出现“ValueError:要解压的值太多”的主要内容,如果未能解决你的问题,请参考以下文章
使用 AWS Elastic Beanstalk 部署 Django 应用程序时出现 502 Bad Gateway nginx/1.20.0 错误
尝试将 AWS S3 数据库备份到 heroku postgres 时出现 403 错误
尝试在 AWS Beanstalk 上运行 django 项目时出现实例配置文件不存在的错误
使用 Boxfuse 将播放框架应用程序部署到 Amazon AWS 时出现“不允许主机”错误