AWS Elastic Beanstalk chown PythonPath 错误

Mac*_*ass 2 python amazon-web-services flask python-3.x amazon-elastic-beanstalk

我正在 AWS 的弹性 beantalk 上部署一个 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”在本地运行得非常好。

关于我如何解决这个问题的任何建议?

小智 5

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

git rm -r --cached venv
git commit -m 'Remove the now ignored directory venv'
git push origin master
Run Code Online (Sandbox Code Playgroud)

  • 我遇到过同样的问题。就我而言,没有将“venv”添加到“.ebignore”中,因此它被部署到服务器上。然后我在我的 .`ebignore` 中添加了 `venv` 并收到了此错误消息。我通过将自动扩展策略设置为 0 解决了这个问题。从环境中删除实例后,我将自动扩展策略恢复到原来的状态 (4认同)

ech*_*315 5

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

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