Windows10执行generate_tfrecord.py报NotFoundError的原因、修复及解释
解决Windows10下运行generate_tfrecord.py时的NotFoundError问题
Hey there, let's break down why you're hitting this tensorflow.python.framework.errors_impl.NotFoundError: Failed to create a NewWriteableFile error when running your Python script on Windows 10, and walk through the fixes step by step.
可能的原因及修复方法
1. 目标输出目录不存在
TensorFlow的tf.io.TFRecordWriter(也就是脚本里用来生成.record文件的工具)不会自动创建不存在的目录。如果你指定的data文件夹在当前工作目录下还没创建,就会直接触发这个错误。
修复方法:
- 手动创建
data文件夹:打开文件资源管理器,找到脚本所在的文件夹,右键→新建→文件夹,命名为data。 - 用命令行创建:打开命令提示符/PowerShell,切换到脚本所在目录(用
cd 脚本路径),然后运行mkdir data。
2. 路径格式或工作目录错误
Windows用反斜杠\表示路径,但这在命令行参数或Python脚本里可能会出现解析问题;另外如果你的命令行当前工作目录不是脚本所在的目录,相对路径data\train.record就会指向错误的位置。
修复方法:
- 替换路径分隔符:把命令参数改成
--output_path=data/train.record或者--output_path=data\\train.record,避免转义字符冲突。 - 使用绝对路径:换成
data文件夹的完整路径,比如--output_path=C:\my_tf_project\data\train.record,这样不管当前工作目录在哪都能正确定位。 - 确认工作目录:在命令提示符里运行
cd,或者PowerShell里运行pwd,查看当前所在目录。如果不是脚本所在目录,用cd 脚本路径切换后再执行脚本。
3. 目录缺少写入权限
如果data文件夹在受保护的系统目录(比如C:\Program Files、C:\Windows),或者当前用户没有该目录的写入权限,TensorFlow就无法创建文件。
修复方法:
- 迁移项目文件夹:把整个项目移到非系统盘或不受保护的目录,比如
D:\my_tf_project,从根源避免权限问题。 - 以管理员身份运行命令行:右键点击命令提示符/PowerShell,选择“以管理员身份运行”,再执行脚本命令,临时获取更高权限。
- 修改文件夹权限:右键
data文件夹→属性→安全→编辑→选中当前用户→勾选“写入”权限→点击应用和确定。
快速验证步骤
运行脚本前,先尝试在data文件夹里手动创建一个空文本文件。如果能成功创建,说明目录存在且有写入权限,问题大概率出在路径格式上。
内容的提问来源于stack exchange,提问作者Bala venkatesh
相关产品推荐
相关产品推荐

