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 安装错误