将 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 时出现“不允许主机”错误

将 asp.net core web api 部署到 aws elastic beanstalk 时出现错误 404

运行“工头启动”/将 Django 应用程序部署到 Heroku 时出现问题