【问题标题】:AWS Elastic Beanstalk chown PythonPath errorAWS Elastic Beanstalk chown PythonPath 错误
【发布时间】: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”,我的应用程序在本地运行得非常好。

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

【问题讨论】:

    标签: python python-3.x amazon-web-services flask amazon-elastic-beanstalk


    【解决方案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.

    【讨论】:

      猜你喜欢
      • 2020-02-19
      • 2017-01-22
      • 2021-11-26
      • 2015-05-07
      • 2015-07-17
      • 1970-01-01
      • 2020-06-08
      • 2019-02-22
      • 2021-02-03
      相关资源
      最近更新 更多