【问题标题】:Elastic Beanstalk won't recognize absolute path to file, returns FileNotFoundErrorElastic Beanstalk 无法识别文件的绝对路径,返回 FileNotFoundError
【发布时间】:2020-01-10 07:12:45
【问题描述】:

我正在使用 AWS Elastic Beanstalk 运行 Flask 应用程序。应用程序部署成功,但我的代码中有一个任务,我使用 pandas read_csv 从 csv 文件中提取数据。代码行是:

form1 = pd.read_csv('/opt/python/current/app/application/model/static2/form1.csv')

当我尝试在应用程序中执行该任务时,我收到 FileNotFoundError:
FileNotFoundError: [Errno 2] File b'/opt/python/current/app/application/model/static2/form1.csv' does not exist: b'/opt/python/current/app/application/model/static2/form1.csv'

当我在本地执行程序时不会出现此问题,但只有当我使用文件的完整绝对路径时才会出现此问题。这是由于我的依赖项的设置方式。

当我第一次部署应用程序时,我收到错误,因为我仍在使用文件的本地路径,所以我将其更改为您在上面看到的那个,这就是我认为上传到 Beanstalk 上的文件的绝对路径。我认为这是因为我从之前遇到问题的静态图像中复制了它。

我应该注意,我无法验证绝对路径,因为我无法使用 EB CLI 远程访问 Elastic Beanstalk。几天来,我一直试图在我的机器上设置 EB CLI,但一再失败,我认为是因为我的机器上出现了奇怪的版本和文件问题。所以我无法使用命令行获取信息或解决问题。

那么,我上面使用的路径是否与 EB 绝对路径一致?这可以通过添加到我的静态文件配置来解决吗?如果是这样,怎么做?有什么我可以添加到 .config 文件中的吗?

非常感谢任何帮助。

【问题讨论】:

    标签: python flask amazon-elastic-beanstalk


    【解决方案1】:

    问题解决了!我的流程是由 rq 工作人员执行的。 rq 工作人员正在我的本地机器上运行,我没有意识到工作人员正在寻找文件路径。我通过打印os.getcwd() 发现了这一点,并注意到当前工作目录仍然是我的本地路径。因此,我在 FileNotFoundError 上抛出了一个异常,以便工作人员根据需要使用本地路径。

    【讨论】:

      猜你喜欢
      • 2020-08-16
      • 2021-02-23
      • 2020-06-14
      • 1970-01-01
      • 1970-01-01
      • 2021-01-19
      • 2020-05-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多