我正在使用 AWS Elastic Beanstalk 运行 Flask 应用程序。应用程序部署成功,但我的代码中有一个任务使用 pandasread_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 文件中添加任何内容吗?
任何帮助是极大的赞赏。
问题解决了!我的流程是由 rq 工作人员执行的。 rq 工作人员正在我的本地计算机上运行,我没有意识到这将是寻找文件路径的工作人员。我通过打印发现了这一点os.getcwd()
并注意到当前工作目录仍然是我的本地路径。因此,我在 FileNotFoundError 上抛出异常,以便工作人员根据需要使用本地路径。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)