当我在命令行上的张量流对象检测文件上运行此:
protoc --python_out=. .\object_detection\protos\anchor_generator.proto
时,我得到:
'protoc' is not recognized as an internal or external command, operable program or batch file.
我遵循了 protoc object_detection/protos/*.proto中的所有说明:没有这样的文件或目录 ,但它们从来没有为我工作
除了我所做的搜索之外,我尝试了这个命令:
py-3.6 -m pip install protobuf
它对我有用。
我再次输入了该命令
python_out=. .\object_detection\protos\anchor_generator.proto
但它仍然失败了,如下:
C:\Users\laptop market\Downloads\bin\protoc object_detection/protos/*.proto --py_out=.
也失败。
你得到的错误是,系统无法找到
protoc
命令,这意味着你没有在系统路径中安装
Protocol Buffers
编译器 (
protoc
) 或它没有被正确添加到系统路径中。
以下是如何解决这个问题的方法:
- 下载 Protocol Buffers:
- 从官方网站 https://github.com/protocolbuffers/protobuf/releases 下载对应你操作系统的预编译二进制文件。
-
选择
protoc-<version>-<os>.zip
(例如:protoc-3.19.4-win64.zip
)。 -
提取 Protocol Buffers:
-
解压下载的
.zip
文件。 -
在解压后的文件夹中找到
bin
文件夹。-
里面应该有一个
protoc.exe
文件 (Windows) 或者protoc
文件 (Linux/Mac)。
-
里面应该有一个
-
将 Protocol Buffers 添加到系统路径:
-
Windows:
- 打开 控制面板 > 系统和安全 > 系统 。
- 点击 高级系统设置 。
- 在 系统属性 窗口中,点击 环境变量 。
-
在
系统变量
列表中,找到
Path
变量,并点击 编辑 。 -
点击
新建
,并将
protoc.exe
文件所在的bin
文件夹的完整路径粘贴进去。 - 点击 确定 保存所有更改。
-
Linux/Mac:
- 打开终端。
-
使用你喜欢的文本编辑器打开
~/.bashrc
或~/.zshrc
文件。 -
在文件末尾添加以下行,将
<protoc_bin_path>
替换为protoc
文件所在的bin
文件夹的完整路径:bash export PATH=$PATH:<protoc_bin_path>
- 保存文件并关闭编辑器。
-
运行
source ~/.bashrc
或source ~/.zshrc
使更改生效。
-
验证安装:
- 打开一个新的命令行窗口或终端。
-
运行
protoc --version
。- 如果安装成功,你应该会看到安装的 Protocol Buffers 版本号。
-
运行你的命令:
-
现在你应该能够在你的 TensorFlow 目录中运行以下命令:
bash protoc object_detection/protos/*.proto --python_out=.
注意:
-
确保将
<protoc_bin_path>
替换为你实际提取 Protocol Buffers 的路径。 -
使用
cd
命令导航到包含object_detection
文件夹的目录,然后再运行protoc
命令。
完成这些步骤后,你应该能够成功地使用
protoc
命令编译你的
.proto
文件了。