AWS Elastic Beanstalk chown PythonPath 错误

Posted

技术标签:

【中文标题】AWS Elastic Beanstalk chown PythonPath 错误【英文标题】:AWS Elastic Beanstalk chown PythonPath error 【发布时间】:2020-08-31 11:01:07 【问题描述】:

我正在 AWS 的弹性 beanstalk 上部署一个 Web 应用程序并遇到同样的错误:

[StageApplication]. Stop running the command. Error: chown /var/app/staging/venv/bin/python: no such file or directory.

我在我的环境配置中看到属性:PYTHONPATH : /var/app/venv/staging-LQM1lest/bin

使用命令“python applicaiton.py”,我的应用程序在本地运行得非常好。

关于如何解决此问题的任何建议?

【问题讨论】:

【参考方案1】:

确保您没有将本地 venv 推送到 EB 引用的 Git 存储库。我试图从另一台机器上进行更新,但不小心将它推送到 master,导致了这个确切的错误。即使在添加到 gitignore 文件后,我也必须使用以下内容将其删除。试一试和/或仔细检查。

git rm -r --cached venv
git commit -m 'Remove the now ignored directory venv'
git push origin master

【讨论】:

查看.gitignore 以在未来提供帮助。 我遇到了同样的问题。在我的情况下,没有将venv 添加到我的.ebignore 中,因此它被部署到服务器上。然后我在我的 .ebignore 中添加了 venv 并收到此错误消息。我通过将自动缩放策略设置为 0 来解决它。从环境中删除实例后,我将自动缩放策略恢复为原来的状态【参考方案2】:

我发现 eb deploy 正在部署我的本地 venv 目录,即使它位于 .gitignore 中。我通过转到侧边栏中的“应用程序版本”并在“源”列下下载已部署的 .zip 文件来确认这一点。果然,我的venv在里面。

我从我的 git repo 中的子目录运行 eb deploy。如我所愿,eb 只是部署了这个子目录。但是,由于某种原因,它忽略了我在这个子目录中的 .gitignore 文件。我添加了一个 .ebignore 文件并将我的 venv 放在那里,它解决了问题。请注意,使用 .ebignore 时,eb 不再部署 git 中提交的内容,而是部署工作目录中的内容。更多here.

【讨论】:

以上是关于AWS Elastic Beanstalk chown PythonPath 错误的主要内容,如果未能解决你的问题,请参考以下文章

AWS Elastic Beanstalk CLI 安装错误

text AWS Elastic Beanstalk

HTTPS Elastic Beanstalk (AWS) 到 Android

AWS Elastic Beanstalk 无法担任角色

AWS Elastic Beanstalk

AWS Elastic Beanstalk chown PythonPath 错误