【发布时间】:2022-01-03 12:17:53
【问题描述】:
我的应用程序直到昨天都运行良好 - 快完成了,今晚就到期了。昨天由于某种原因,它无法识别应用程序文件夹中的任何文件(我使用的是 VSC)。我不知道为什么会突然发生这种情况,但我检查了 app.py 文件的目录,它与我的附加文件的路径相同。我什至尝试在另一台电脑上加载我的项目,以防问题出在我的内部文件系统上,但得到了同样的错误。
下面打印的错误是针对我的应用调用的第一个文件 datab.yaml,但是当我删除它时,我会在尝试调用的下一个文件 (sentiment_model.pkl) 中遇到相同的错误,依此类推。
错误:
File "c:\Users\jeram\Documents\NCI\Semester3\TriagatronX50\app.py", line 57, in <module>
db = yaml.safe_load(open('datab.yaml'))
FileNotFoundError: [Errno 2] No such file or directory: 'datab.yaml'
我试过了
import os.path
prog = ("/Users/jeram/Documents/NCI/Semester3/TriagatronX50")
directory = os.path.dirname(os.path.abspath(prog))
print(os.path.join(directory, 'datab.yaml'))
但是当我运行它时它仍然会抛出同样的错误。
非常感谢任何帮助!
【问题讨论】:
-
您可以尝试使用某些操作系统库功能获取当前工作目录(该 yaml 文件所在的位置)并获取其绝对路径,然后尝试打开该文件。顺便说一句,你是如何运行这个的?什么命令,来自哪个目录?
-
我使用 VSC 中的控制面板在我的主 app.py 文件上运行它(“不调试运行”),但在您发表评论后,我尝试使用“flask run”命令运行它在终端中,它有效吗?!太奇怪了,因为直到现在我都在使用另一个按钮。非常感谢!不过,为了将来参考,当我只能在 python 文件中运行 os 命令时,如何检查 yaml 文件的绝对路径?我对此很陌生,所以不完全了解目录系统的工作原理。
-
您可以使用getcwd 获取当前工作目录(CWD)。如果你的 CWD 不是包含 yaml 文件的那个,你会这样知道。