首页 > 解决方案 > 使用 Heroku CLI 将更改推送到 Python/Flask 应用程序后使用代码修改文件路径导致 FileNotFoundError:[Errno 2]

问题描述

我在解决这个问题时遇到了困难,如果有任何建议或想法,我将不胜感激。我在网上搜索了很多都没有运气,但我也是新手,所以解决方案可能非常明显。

我有一个运行 Python API 的 Flask 应用程序,它会生成一些 pickle 文件。该应用程序托管在 Heroku 上。这些文件存储在 AWS-S3 上。当应用程序在 Heroku 上创建文件时,它们将具有如下路径: mydirectory/myfilename.pkl

但是,当我使用 Heroku CLI 将更改推送到我的应用程序,然后运行一个访问同一文件的函数时mydirectory/myfilename.pkl,我收到此错误:

FileNotFound[Errno 2] 没有这样的文件或目录:“mydirectory/myfilename.pkl.ceDd4963”

它看起来像是某种类型的缓存或版本控制,但我不知道路径末尾的这个字符串是如何生成的。每个请求都有不同的字符串。在本地推送更改时我没有这个问题,它只在 Heroku 上。如果在推送更改后创建新文件,我不再收到错误消息,但这不是一个有效的解决方案。

是否有人对导致此问题的原因以及如何禁用它有任何建议或想法?

先感谢您。

标签: python-3.xherokuamazon-s3flaskheroku-cli

解决方案


推荐阅读